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>
运行效果:
相关推荐
该资源包含了一个indexdb学习的简单demo,包含了增删改查,以及索引的创建和使用,可以参考博客http://blog.csdn.net/mockingbirds/article/details/48749375
实现了简单的增删改查demo,适用于谷歌,没做过其他浏览器的适配
主要介绍了使用HTML5 IndexDB存储图像和文件的示例的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。IndexedDB 允许储存大量数据,提供查找接口,还能建立索引。
本篇文章主要介绍了HTML5中indexedDB 数据库的使用实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本人从华章图书网站下的资源 为了与大家分享 遂上传 有兴趣游戏开发的朋友可看看
html实现扫雷小游戏源码,实现windows系统的扫雷的基本功能,直接点击index.html运行。具体效果展示地址:https://blog.csdn.net/weixin_43151418/article/details/127886480
html制作五子棋对战源码,酷炫的界面效果,带AI,可本地双人一起玩,也可以单独跟AI单挑。下载后直接点击gobang.html运行,就可以开始下五子棋了。 代码讲解地址:...
使用indexdb的任务管理器 使用indexdb的任务管理器
IndexDbHelper 帮助将indexDb管理到浏览器中的工具简化IndexDB使用的类使用来自浏览器的窗口引用或其他提供以下接口的东西来构建它:window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window....
React Hooks使用Dexie.js IndexDB库 Dexie.js是一个华丽的库,可通过简单而强大的语法使用IndexDB 。 但是,如果要在React项目中使用Dexie.js,则需要实现一系列允许异步交互的逻辑。 为此,useDexie是一个包含一...
react-use-idb (useIdb) 管理单个 indexDB 项目的 React 副作用挂钩。 对 useLocalStorage 的直接替换。 为什么 ? LocalStorage 是同步的,因此存在性能问题 LocalStorage 也受到限制,仅存储字符串并且不提供用于...
Algorithm-study-indexdb.zip,基于磁盘的索引数据库实现。纯粹是用Java编写的。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
店铺 这是一个有趣的项目 构建设置 # install dependencies npm install # serve with hot reload at localhost:8080 npm run dev # build for production with minification npm run build # build for production ...
SimpleIndexedDB.js 使用ES6的简单IndexedDB的包装器(JavaScript Promise,let,箭头功能)。
strimJS 一个管理 localstorage 和 indexDB 的库
html实现经典打方块小游戏源码,通过控制鼠标移动方块,单击发出子弹, 它可以连发子弹,敌方方块被打碎后会分裂为多个小方块。整个游戏非常流畅,性能非常好。 总共三次机会,当碰到别的方块失去一次机会,有历史总...
HTML / CSS 安装 要安装必要的依赖项,请运行以下命令: npm install 用法 如果在本地运行,Mongo必须正在运行 依存关系/信用 表示 猫鼬 精简版服务器 压缩 摩根 问题 如果您对存储库有任何疑问,请打开问题或联系...
工商银行 indexdb连接器