IDBOpenDBRequest - 提供对打开或删除数据库的请求结果的访问

IDBOpenDBRequestIndexedDB API 的接口,提供对打开或删除数据库的请求结果的访问(使用 IDBFactory.openIDBFactory.deleteDatabase),使用特定的事件处理程序属性。

注意: 此特性在 Web Worker 中可用。

属性

还从其父接口 IDBRequestEventTarget 继承了方法。

方法

没有特有的方法,但从其父接口 IDBRequestEventTarget 继承了方法。

事件

使用 addEventListener() 或通过为此接口的 oneventname 属性分配事件监听器来监听这些事件:

blocked

同一数据库中,当数据库打开的连接被 versionchange 事务阻止时触发。也可以通过 onblocked属性处理。

upgradeneeded

尝试打开版本号高于其当前版本的数据库时触发。也可以通过onupgradeneeded 属性处理。

实例

在以下实例中,可以看到,如果加载了具有更高版本号的数据库,则通过 onupgradeneeded 处理程序更新数据库结构。有关完整的工作实例,请参阅我们的待办事项通知应用程序(查看在线实例。)

var db;

// 让我们打开数据库
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// 打开数据库时,触发这些事件处理程序。
DBOpenRequest.onerror = function(event) {
  note.innerHTML += '<li>加载数据库出错。</li>';
};

DBOpenRequest.onsuccess = function(event) {
  note.innerHTML += '<li>数据库已初始化。</li>';

  // 存储在 db 变量中打开数据库的结果。这在后续会多处使用。
  db = DBOpenRequest.result;

  // 执行 displayData() 函数,使用 IDB 中已有的所有待办事项列表数据填充任务列表
  displayData();
};

// 当数据库需要创建新版本:以前未创建过该数据库,
// 或者是通过上面的 window.indexedDB.open 提交了新版本号时,
// 触发该事件处理程序
DBOpenRequest.onupgradeneeded = function(event) {
  var db = this.result;

  db.onerror = function(event) {
    note.innerHTML += '<li>加载数据库出错。</li>';
  };

  // 为此数据库创建 objectStore
  var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });

  // 定义 objectStore 将包含哪些数据项
  objectStore.createIndex("hours", "hours", { unique: false });
  objectStore.createIndex("minutes", "minutes", { unique: false });
  objectStore.createIndex("day", "day", { unique: false });
  objectStore.createIndex("month", "month", { unique: false });
  objectStore.createIndex("year", "year", { unique: false });
  objectStore.createIndex("notified", "notified", { unique: false });
};

规范

规范 状态 备注
Indexed Database API
IDBOpenDBRequest 的定义
推荐 初始定义
Indexed Database API 2.0
IDBOpenDBRequest 的定义
编者的草案 -

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持

24

23 — 57 webkit

支持

16

10 — 16 moz

101157
Available in workers 支持 未知37 未知 支持 未知
onblocked

24

23 — 57 webkit

12

16

10 — 16 moz

101157
onupgradeneeded

24

23 — 57 webkit

12

16

10 — 16 moz

101157

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持

24

23 — 57 webkit

24

23 — 57 webkit

支持22 未知228
Available in workers 支持 支持 支持37 未知 支持 未知
onblocked

24

23 — 57 webkit

24

23 — 57 webkit

支持22 未知228
onupgradeneeded

24

23 — 57 webkit

24

23 — 57 webkit

支持22 未知228

1. 部分的

相关链接