IDBVersionChangeEvent - 表示数据库的版本已更改的事件
IDBVersionChangeEvent
是 IndexedDB API 的接口,表示数据库的版本已更改的事件,更改是 IDBOpenDBRequest.onupgradeneeded
事件处理函数的结果。
属性
还从其父接口 Event
继承了属性。
IDBVersionChangeEvent.oldVersion
只读
返回数据库的旧版本。
IDBVersionChangeEvent.newVersion
只读
返回数据库的新版本。
废弃的属性
IDBVersionChangeEvent.version
只读
versionchange
事务中数据库的新版本。
警告:虽然此属性仍在旧版浏览器中实现,但最新的规范将其替换为
oldVersion
和newVersion
属性。请参阅兼容性表以了解哪些浏览器支持它们。
方法
没有特有的方法,但从其父接口 Event
继承属性。
实例
在下面的代码片段中,我们发出打开数据库的请求,并包含成功和错误情况的处理程序。在版本更改后(在 upgradedneeded
事件之后), success
事件将实现 IDBVersionChangeEvent
接口。
In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. Upon a version change (after an upgradedneeded
event), the success
event will implement the IDBVersionChangeEvent
interface.有关完整的工作实例,请参阅我们的待办事项通知应用程序(查看在线实例。)
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 变量中打开数据库的结果。这在后续会多处使用,用于打开交易等。
db = DBOpenRequest.result;
};
规范
规范 | 状态 | 备注 |
---|---|---|
Indexed Database API IDBVersionChangeEvent 的定义 |
推荐 | 初始定义。 |
Indexed Database API 2.0 IDBVersionChangeEvent 的定义 |
编者的草案 | - |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 24 23 webkit | 未知 | 16 10 — 16 moz | 101 | 15 | 7 |
Available in workers | 支持 | 未知 | 37 | 未知 | 支持 | 未知 |
newVersion | 24 23 — 57 webkit | 12 | 16 10 — 16 moz | 101 | 15 | 7 |
oldVersion | 24 23 — 57 webkit | 12 | 16 10 — 16 moz | 101 | 15 | 7 |
version | 12 | 支持 | 4 9 moz | 不支持 | 不支持 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 未知 | 22 | 未知 | 未知 | 未知 |
Available in workers | 支持 | 支持 | 支持 | 37 | 未知 | 支持 | 未知 |
newVersion | 24 23 — 57 webkit | 24 23 — 57 webkit | 支持 | 22 | 未知 | 22 | 8 |
oldVersion | 24 23 — 57 webkit | 24 23 — 57 webkit | 支持 | 22 | 未知 | 22 | 8 |
version | 支持 | 4.4 | 支持 | 22 | 未知 | 22 | 不支持 |
1. 部分的
相关链接
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置一系列键:
IDBKeyRange
- 检索并更改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考实例:To-do 通知 (在线查看实例。)