专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > HTML5

html5 indexDB范例

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
html5 indexDB实例

        IndexedDB是用于客户端的大量的结构化数据存储和使用索引高效率搜索数据的API,它是基于W3C拟定的草案索引数据库的API。相对DOM存储的小存储数据量,IndexedDB具有大容量的数据存储功能,它分别为同步数据和异步数据提供的API,但目前只有异步数据的API在Gecko2.0 上实现。

        IndexDB的特点:

        1. IndexedDB存储为键值对:它可以存储一些复杂的对象,而键可以存储这些对像的属性值,并且可以使用索引对对象的属性的快速检索。

        2. IndexedDB建立在交互数据库模型的基础上:任何对IndexedDB的操作都发生一个交互操作(transaction),如它提供的索引、表、游标等均与一个transaction关联,它定义了交互的生存时间与结束时抛出的事件,这样能很好的处理web程序在不同的tab窗口中实例的互操作。

        3. IndexedDB的API大多是异步的:你可以向数据库发出操作的“请求”,当操作完成时会产生一个DOM事件,通过事件的类型会知道操作是否成功。

        4. IndexedDB使用“请求”机制:操作对象会接收到DOM的success和failure事件,它也有相应的onsuccess和onerror的属性;对象还有readyState、result和errorCode属性来查看当前“请求”的状态,而result属性则根据不同的“请求”返回不同的结果。

        5. IndexedDB 使用DOM事件机制来处理“请求”的结果:DOM事件的type属性提示操作是否成功,target属性指向发生“请求”的对象(大多数情况下是IDBRequest对象)。

        6. IndexedDB工作基本模式:

        a.创建一个交互操作对象

        b.发送操作"请求"

        c.通过监听DOM事件等待操作完成

        d.处理"请求"结果

下面是使用IndexDB的实例:

<!DOCTYPE html>
<html>
<head>
<title>HTML 5 Application - IndexedDb</title>
<script type="text/javascript">
	var blockbusters={
		 title:"indexDB",
		 derector:"HTML5 function",
		 length:120
	};//假设这个object用来保存的	
	var db;
	var request;
	var store;
	function createDatabase(dbName) {
		request=indexedDB.open(dbName,3);//如果存在的话,就打开;如果不存在的话,就新建
		//打开数据库失败,onerror事件被触发
		request.onerror = function () {
	    	alert("fail to open datbase with:"+event.target.message);
		}
		//打开数据库成功,onsuccess事件被触发
	    request.onsuccess = function (event) {
			alert("success open the database!");
			// store.add(ss);
			db=event.target.result;
			var transaction = db.transaction(["blockbusters"], "readwrite");//可读可写事务方式
	        var objectStore = transaction.objectStore("blockbusters");
			objectStore.add(blockbusters);
			// var store = db.createObjectStore("blockbusters", {keyPath: "title",autoIncrement: false});
			//   store.createIndex("director", "director", { unique: false });
			// var transaction = db.transaction(["blockbusters"],readwirte);
	        //    store = transaction.objectStore("blockbusters");
	        //   request = store.put(video);	 
	    }
	    //在新的数据库创建或数据库版本号被更改时,onupgradeneeded事件被触发
		request.onupgradeneeded = function(event) {
			alert("version Change");
	        db = event.target.result;
			store = db.createObjectStore("blockbusters", {keyPath: "title",autoIncrement: false});
			// store.createIndex("director", "director", { unique: false });  
		}
	}	 
	function deletedatabase(dbName){
		try{
	    	indexedDB.deleteDatabase(dbName);
	   	}catch(e){
		 	alert(e.getMessage);
		}
	}	 
</script>
</head>
<body>
	<button onclick="createDatabase('Test')">Create Database</button>
	<button onclick="deletedatabase('customers')">delet Database</button>
</body>
</html>

运行效果:



 

文章来源:http://blog.csdn.net/gointoit/article/details/9151071

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • 使用HBuilder编辑器将html五页面打包成APP

    使用HBuilder编辑器将html5页面打包成APP   使用HBuilder编辑器将html5页面打包成APP (ios+安卓) 1.首先先安装HBuilder编...

  • 基于phonegap,html5,ratchet,handlebars等技术的微神情APP

    基于phonegap,html5,ratchet,handlebars等技术的微表情APP 该app是由很多有意思的微表情构成的,支持40种表情,并且每种表情都有不同的...

  • HTML5 Web 客户端五种离线储存方式汇总

    HTML5 Web 客户端五种离线存储方式汇总 最近折腾HTML5游戏需要离线存储功能,便把目前可用的几种HTML5存储方式研究了下,基于H...

  • SPICE-HTML5 鼠标指针BUG修补

    SPICE-HTML5 鼠标指针BUG修复 研究SPICE,找到了他们官方指定的HTML5客户端。 下载下来用一下,发现跟网页VNC的水平差不多了。 http:...

  • HTML5+JS 《五子飞》游戏实现(5)移动棋子

    HTML5+JS 《五子飞》游戏实现(五)移动棋子 上一章 我们知道了怎么处理两个重要的吃棋动作,想要吃对方的棋子,首先得移动自己的棋子。...

  • HTML5中怎么上传Resize后的图片

    HTML5中如何上传Resize后的图片 参考资料: 不依赖form标签,而是自己定义FormData上传数据,文件被编码为一个Blob或File对象: https...

  • (1)HTML5

    (一)HTML5 可以解决什么问题: 可以实现网页的ajax加载,同时又能完成URL的改变而没有网页跳转刷新的迹象,就像是改变了网页的hash(#)一样。...

  • 一款纯html5实现的钟表

    一款纯html5实现的时钟 今天给大家分享一款非常漂亮的纯html5实现的时钟。整个界面都由html5绘制而成。一起看下效果图: 在线预览...

  • 使用 WebSockets 开展 HTML5 视频直播

    使用 WebSockets 进行 HTML5 视频直播 实验环境:Ubuntu。 参考以下两个链接进行实践: http://segmentfault.com/blog/xingrz/119...

  • 查询浏览器是不是支持html5

    查询浏览器是否支持html5 js判断 插入js代码====================================================== <script> wind...

热门推荐: