参考:https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB
关键是理解异步和对象
IndexedDB是一种在用户的浏览器上持久化存储数据的方式。它可以忽略网络可用性,让您创建高效数据查询的web应用程序,让您的应用程序可以同时在线和离线工作。
关于本文档
本教程将引导您完成IndexedDB API(异步)的使用。如果你不熟悉IndexedDB,应先阅读关于IndexedDB的基本概念.
对于IndexedDB API中文文档,请参阅IndexedDB。本文记载了IndexedDB所使用的对象的类型,以及异步方法。(API中同步的方法已删除)
indexDB使用方法(基本模式)
推荐使用以下步骤:
- 打开一个数据库。
- 在数据库中创建一个存储对象。
- 启动一个事务,以请求数据库操作。如添加或检索数据。
-
监听操作完成的DOM事件。如onsuccess
-
利用返回对象的结果。
有了这几条大的思路,下面我们开始展开。
构建数据
因为规范仍在发展,当前IndexedDB的实现需要加浏览器前缀。直到IndexedDB API规范定型前,浏览器厂商可能有不同的实现方式。但是一旦达到共识,浏览器厂商会实现无前缀标签。实际上ie10,Firefox16,Chrome 24都实现了带前缀的IndexedDB API。Gecko核心的浏览器使用moz
前缀,而基于webkit的浏览器使用 webkit
前缀。
使用一个IndexedDB的实验版本
如果你想测试你的浏览器使用的前缀,您可以使用以下代码:
// In the following line, you should include the prefixes of implementations you want to test.
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
// DON'T use "var indexedDB = ..." if you're not in a function.
// Moreover, you may need references to some window.IDB* objects:
window.IDBTransaction = window.IDBTransaction ||