`
mingren135
  • 浏览: 72495 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

html5读书笔记

 
阅读更多

book&code:http://www.minkbooks.com/ 

 

第8章-拖放API

1、7种新的事件:为了得到预期效果,需要停止默认行为

----src--------

dragstart

drag

dragend

---dest------

dragenter

dragover

drop

dragleave

2、拖放操作

drop = document.getElementById('dropbox');
drop.addEventListener('dragenter', function(e){ e.preventDefault(); });//大多数元素不支持投放操作,为了在投放框中支持这个操作必须阻止默认行为
drop.addEventListener('dragover', function(e){ e.preventDefault(); });
drop.addEventListener('drop', dropped);
 
function dragged(e){
  var code = '<img src="' + source1.getAttribute('src') + '">';
  e.dataTransfer.setData('Text', code);//保存拖放操作的信息
}
function dropped(e){
  e.preventDefault();
  drop.innerHTML = e.dataTransfer.getData('Text');
}

3、dataTransfer

setData(type,data):发送到数据和类型,如text/plain、text/html等

getData(type)

clearData() 

setDragImage(elem,x,y):浏览器创建的默认缩略图替换为自定义图像,并设定鼠标位置

----属性-----

types

files:数组,返回被拖动到文件

dropEffect:当前操作类型,none、copy、link、move

effectAllowed

function dropped(e){
  e.preventDefault();
  var files = e.dataTransfer.files;
  var list = '';
  for(var f = 0; f < files.length; f++){
    list += 'File: ' + files[f].name + ' ' + files[f].size + '<br>';
  }
  drop.innerHTML = list;
}

 

 

第9章-地理位置API

1、提供了3个具体的方法

getCurrentPosition(location,error,configuration)

watchPosition(location,error,configuration):前者是一次性操作,该方法在位置变化时,自动提供新的数据,知道用clearWatch取消。

clearWatch(id)

2、第一,必须在移动设备上测试多数代码才能确切了解真实情况下的执行情况(dev.w3.org/geo/api/test-suite/,使用该API测试套件);第二,必须对这个API的使用负责,GPS及其它定位要消耗大量资源,稍不注意设备电池会很快耗尽,其只有在严格必须的时候,才将enableHighAccuracy属性设置为true,不要滥用。

3 、Google Map API,code.google.com/apis/maps

 

第10章-Web存储API

1、提供2种机制存储数据

sessionStorage:单窗口使用,关闭后消失

localStorage:存储永久数据,同一应用程序可以共享。HTML5规范建议浏览器厂商为每个来源至少保留5MB空间。

2、方法

setItem(key,value)

getItem(key):属性.或[]获取数据值

key(index)

removeItem(key)

clear()

3、属性

length:存储空间数据条数

4、事件

storage:存储空间发生变化时触发该事件(localstorage共享)

 

 第11章-IndexedDB API

1、用于存储大量结构化数据,作为底层API开发的,目的是支持更广泛的用途,允许开发人员进一步开发,它是最强大的API,也是最复杂的API。

createObjectStore(name,keyPath,autoIncrement):keyPath声明对象公共索引

objectStore(name):事务来打开一个对象库

deleteObjectStore(name)

2、创建数据库

 

if(window.webkitIndexedDB){//针对特定浏览器引擎属性的检测
  	window.indexedDB = window.webkitIndexedDB;
  	window.IDBTransaction = window.webkitIDBTransaction;
  	window.IDBKeyRange = window.webkitIDBKeyRange;
  	window.IDBCursor = window.webkitIDBCursor;
  }else if(window.mozIndexDB){
  	window.indexedDB = window.mozIndexedDB;
  }
  var request = indexedDB.open('mydatabase');
  request.addEventListener('error', showerror);
  request.addEventListener('success', start);
  request.addEventListener('upgradeneeded', createdb);
 
function showerror(e){
  alert('Error: ' + e.code + ' ' + e.message);
}
function start(e){
  db = e.result || e.target.result;//有些浏览器通过事件发送结果对象、有些通过触发事件的元素
  //最终规范确定后,只需要使用其中一个
  if(db.version == ''){//检测并设置版本,方便数据的日后迁移
  	var request = db.setVersion('1.0')
  	request.addEventListener('error', showerror, false);
  	request.addEventListener('success', createdb, false);
  }
}
function createdb(e){
  var mystore = db.createObjectStore('movies', {keyPath: 'id'});//创建对象库时创建索引
  mystore.createIndex('SearchYear', 'date', {unique: false});//使用方法分配一个索引
}
 2、添加对象
var mytransaction = db.transaction(['movies'], "readwrite");//多个对象库生成事务,事务类型
var mystore = mytransaction.objectStore('movies');//获取一个对象库
var request = mystore.add({id: keyword, name: title, date: year});//添加对象
request.addEventListener('success', function(){ show(keyword) });
 3、显示对象
function show(keyword){
  var mytransaction = db.transaction(['movies']);//默认事务readonly
  var mystore = mytransaction.objectStore('movies');
  var request = mystore.get(keyword);
  request.addEventListener('success', showlist);
}
function showlist(e){
  var result = e.result || e.target.result;
  databox.innerHTML = '<div>' + result.id + ' - ' + result.name + ' - ' + result.date + '</div>';
}
 4、cursor显示对象:在事务中获取一组对象,openCursor()打开游标
var mytransaction = db.transaction(['movies']);
var mystore = mytransaction.objectStore('movies');
var newcursor = mystore.openCursor();
newcursor.addEventListener('success', showlist);

function showlist(e){
  var cursor = e.result || e.target.result;
  if(cursor){
    databox.innerHTML += '<div>' + cursor.value.id + ' - ' + cursor.value.name + ' - ' + cursor.value.date + ' <input type="button" onclick="removeobject(\'' + cursor.value.id + '\')" value="remove"></div>';
    cursor.continue();//方法会再次触发success事件,整个函数反复执行,直至游标返回null
  }
}
 
var mytransaction = db.transaction(['movies']);
  var mystore = mytransaction.objectStore('movies');
  var myindex = mystore.index('SearchYear');
  var newcursor = myindex.openCursor(null, "prev");//第一个属性是对象范围,第二个属性是排序
//IDBCursor的属性NEXT、NEXT_NO_DUPLICATE、PREV、PREV_NO_DUPLICATE
  newcursor.addEventListener('success', showlist);

 5、删除数据
function removeobject(keyword){
  if(confirm('Are you sure?')){
    var mytransaction = db.transaction(['movies'], "readwrite");
    var mystore = mytransaction.objectStore('movies');
    var request = mystore.delete(keyword);
    request.addEventListener('success', show);
  }
}
 6、搜索数据
 only(value):只返回关键字与value对应的对象
bound(lower,upper,lowerOpen,upperOpen):创建一个范围,有开始值和结束值
lowerBound(value,open):开放的范围,从value开始,到列表末尾
upperBound(value,open):开放的范围,从列表开始,到value结束
var find = document.getElementById('year').value;
var mytransaction = db.transaction(['movies']);
var mystore = mytransaction.objectStore('movies');
var myindex = mystore.index('SearchYear');
var myrange = IDBKeyRange.only(find);
//var myrange = IDBKeyRange.lowerBound(find,true);
var newcursor = myindex.openCursor(myrange);
newcursor.addEventListener('success', showlist);
 
 

 

分享到:
评论

相关推荐

    java读书笔记笔记笔记笔记笔记笔记

    【标题】"java读书笔记笔记笔记笔记笔记笔记" 暗示了这是一份关于Java编程语言的学习笔记,可能包含了作者在阅读Java相关书籍时所做的重要记录和理解。笔记通常涵盖了语言的基础概念、核心特性、类与对象、内存管理...

    bootstrap学习笔记-html5

    1. **语义化标签**:HTML5引入了如、、、、和等新标签,这些标签为网页内容提供了更好的结构和语义,使搜索引擎和屏幕阅读器更容易理解页面内容。 2. **媒体支持**:HTML5新增了和元素,使得在网页中内嵌视频和音频...

    HTML5学习笔记(总结提炼版)——001

    本学习笔记将聚焦于HTML5的基础知识,包括其新特性、元素和最佳实践。 一、HTML5的新特性 1. 语义化标签:HTML5引入了新的语义化标签,如、、、和等,这些标签有助于更好地组织内容,提高可读性和可访问性。 2. ...

    html5学习笔记.pdf

    从给定文件的内容来看,这份HTML5学习笔记重点介绍了HTML5表格、列表和表单元素的使用方法。 知识点一:HTML5表格元素 表格是HTML页面中用于展示数据的常用方式,包括三大基本元素:表格(table)、行(tr)和...

    HTML5高级程序设计学习笔记

    ### HTML5高级程序设计学习笔记 #### 一、HTML5新增结构标签 在HTML5中,为了更好地组织页面内容并增强语义性,引入了一系列新的结构标签,这些标签不仅能够帮助开发者更清晰地定义页面的不同部分,同时也为搜索...

    HTML读书笔记.pdf

    HTML读书笔记.pdf

    《HTML5CSSJavaScript深入学习实录》读书笔记模板x.pptx

    《HTML5+CSS+JavaScript深入学习实录》读书笔记模板x.pptx 这份笔记模板是根据《HTML5+CSS+JavaScript深入学习实录》这本书所建立的,它涵盖了 HTML、CSS、JavaScript 等前端开发技术的基础知识和高级应用,旨在...

    学习JSP的读书笔记

    在学习JSP(Java Server Pages)的过程中,首先要明确JSP是一种动态网页技术,它结合了HTML、CSS、JavaScript等前端技术以及Java后端编程能力,主要用于构建动态网站和Web应用程序。JSP的本质是Servlet,其主要工作...

    html笔记

    这篇笔记将深入探讨HTML的基本结构、元素、属性以及它在实际开发中的应用。 一、HTML基础 HTML文档通常以`.html`或`.htm`为扩展名,由一系列的元素组成。这些元素可以是文本内容、图像、链接等,它们通过标签包裹...

    毕业设计用读书笔记(jsp)

    通过阅读这些笔记,学生可以借鉴他人的经验,避免重复摸索,提高学习效率。 在"毕业设计用读书笔记(jsp)"的压缩包中,可能包含了作者在学习JSP过程中整理的资料,包括对各个概念的理解、代码示例、问题解析等,...

    基于FLASK的开发的读书笔记_读书笔记

    在添加笔记功能中,用户可能需要填写书名、作者、阅读心得等内容,这些都可以通过表单提交。 4. **数据库交互**:为了存储用户的读书笔记,我们需要一个数据库。Flask-SQLAlchemy扩展为Flask提供了与SQLAlchemy(一...

    计算机专业读书笔记.docx

    ### 计算机专业读书笔记知识点汇总 #### CSS精粹之布局技巧 1. **立即检测疑问** - 在开发过程中遇到CSS布局问题时,应该及时检查代码。 - 利用W3C提供的XHTML与CSS验证工具可以帮助发现并修正错误。 - 文件...

    HTML5+CSS3 markdown笔记

    HTML5和CSS3是现代网页开发的两大核心技术,它们共同为网页提供了丰富的表现力和结构化内容。Markdown则是一种轻量级的标记语言,常用于编写文档、笔记和个人日记,因其简洁易读的语法而备受青睐。以下是这些技术的...

    传智HTML5笔记1

    《传智HTML5笔记1》是一份针对Web前端开发者的实战教程,主要涵盖了HTML5的基础知识,包括前言、语义化、表单以及多媒体等内容。以下是对这些知识点的详细阐述: 1. **前言** - **认识HTML5**:HTML5是超文本标记...

    云笔记,云笔记app排行榜,HTML

    例如,“hotapp-notepad-master”很可能是一个完整的云笔记小程序项目源码,新手可以通过阅读和修改这个项目来学习如何开发云笔记小程序。而其他以数字命名的png文件可能是小程序的界面设计图,可以帮助理解各个功能...

    HTML5存储学习笔记

    HTML5存储是现代Web开发中的一个重要特性,它允许应用程序在用户浏览器上本地存储数据,无需服务器的参与。这种存储方式可以极大地...通过阅读和实践,你可以更好地利用HTML5的存储功能,构建更加健壮和高效的Web应用。

    狂神Java学习笔记————前端入门——html、css、JavaScript学习代码

    通过阅读这些笔记,学习者不仅可以掌握前端开发的基本技能,还能了解到实际开发中可能会遇到的问题和解决策略。 文件列表中的"CSS1"和"CSS2"可能包含了一些CSS的实例或练习,"html"文件夹可能包含了HTML页面示例,...

    统计学与R读书笔记(关于R软件的)

    《统计学与R读书笔记》这本书,就是一本非常好的指南,它不仅涵盖了统计学的基础理论,还详细介绍了如何在R软件中应用这些理论。阅读这本书,可以帮助读者在统计学的海洋中航行,同样也能熟练驾驭R语言这艘统计之船...

    高性能html5 高清版本(含英文原版、中文部分以及读书笔记)

    高性能HTML5 (美)布莱恩特 等 《高性能HTML5》为读者讲解了如何用HTML5 从一开始就设计一个高性能的网站,以及如何对已有网站进行改良,使得它们具备优越的性能。《高性能HTML5》中总结了许多实践经验、关键技巧...

    韩顺平html+css+javascript笔记完整版

    通过阅读和理解这些笔记,学习者能够深化对HTML结构的理解,掌握CSS设计技巧,以及运用JavaScript实现网页动态功能。 【学习资源】 提供的压缩包文件中包含了`javascript学习笔记.docx`、`html+css+javascript学习...

Global site tag (gtag.js) - Google Analytics