IDBFactory - 允许应用程序异步访问索引数据库
IDBFactory
是 IndexedDB API 的接口,允许应用程序异步访问索引数据库。实现改接口的对象是 window.indexedDB
。您打开 - 即创建和访问 - 并使用此对象删除数据库,而不是直接使用 IDBFactory
。
注意: 此特性在 Web Worker 中可用。
方法
IDBFactory.open
用于请求打开连接到数据库。
IDBFactory.deleteDatabase
请求删除数据库。
IDBFactory.cmp
比较两个键并返回指示哪一个值更大的结果。
IDBFactory.databases
返回所有可用数据库的列表,包括其名称和版本。
实例
在下面的代码片段中,我们发出打开数据库的请求,处理成功和错误的情况。有关完整的工作示例,请参阅我们的待办事项通知应用程序(查看在线实例。)
var note = document.querySelector("ul");
// 在下一行中,您应该测试出实现 indexedDB 的前缀。
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
// 如果不在函数中,请不要使用 “var indexedDB = ...”。
// 此外,您可能需要引用一些 window.IDB* 对象:
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
// (Mozilla 从未为这些对象添加前缀,因此我们不需要使用 window.mozIDB*)
// 让我们打开数据库的第 4 版
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
// 这两个事件处理程序用于当数据库成功/失败打开时,对数据库进行操作
DBOpenRequest.onerror = function(event) {
note.innerHTML += '<li>加载数据库出错。</li>';
};
DBOpenRequest.onsuccess = function(event) {
note.innerHTML += '<li>数据库已初始化。</li>';
// 将数据库的打开结果存储到变量中。它可以以后再使用,例如用于打开事务等。
db = DBOpenRequest.result;
};
规范
规范 | 状态 | 备注 |
---|---|---|
Indexed Database API IDBFactory 的定义 |
推荐 | - |
Indexed Database API 2.0 IDBFactory 的定义 |
编者的草案 | - |
Unknown IDBFactory 的定义 |
Unknown | 引入了 IDBFactory.databases 方法。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 24 23 — 57 webkit | 支持 | 16 10 — 16 moz | 101 | 15 | 7 |
Available in workers | 支持 | 支持 | 37 | 未知 | 支持 | 未知 |
cmp | 24 23 — 24 webkit | 12 | 16 10 — 16 moz | 101 | 15 | 7 |
deleteDatabase | 24 23 — 24 webkit | 12 | 16 10 — 16 moz | 101 | 15 | 7 |
open | 24 23 — 24 webkit | 12 | 16 10 — 16 moz | 101 | 15 | 7 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 24 23 — 57 webkit | 24 23 — 57 webkit | 未知 | 22 | 未知 | 22 | 8 |
Available in workers | 支持 | 支持 | 支持 | 37 | 未知 | 支持 | 未知 |
cmp | 24 23 — 24 webkit | 24 23 — 24 webkit | 支持 | 22 | 未知 | 22 | 8 |
deleteDatabase | 24 23 — 24 webkit | 24 23 — 24 webkit | 支持 | 22 | 未知 | 22 | 8 |
open | 24 23 — 24 webkit | 24 23 — 24 webkit | 支持 | 22 | 未知 | 22 | 8 |
1. 部分的
相关链接
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置一系列键:
IDBKeyRange
- 检索并更改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考实例:To-do 通知 (在线查看实例。)