IDBFactory: open() 方法
注意: 此功能在 Web 工作线程 中可用。
IDBFactory
接口的 open()
方法请求打开 数据库连接。
该方法会立即返回一个 IDBOpenDBRequest
对象,并异步执行打开操作。如果操作成功,则会在从该方法返回的请求对象上触发 success
事件,其 result
属性将设置为新 IDBDatabase
对象(用于连接)。
可能会触发 upgradeneeded
、blocked
或 versionchange
事件。
语法
js
open(name)
open(name, version)
参数
返回值
一个 IDBOpenDBRequest
对象,将在该对象上触发与该请求相关的后续事件。
如果操作成功,则请求的 result
属性的值将是表示与数据库的连接的 IDBDatabase
对象。
异常
TypeError
-
如果
version
的值不是大于零的数字,则会抛出此异常。
示例
使用当前规范的 version
参数调用 open
的示例
js
const request = window.indexedDB.open("toDoList", 4);
在以下代码片段中,我们请求打开数据库,并包含用于成功和错误情况的处理程序。有关完整的运行示例,请参见我们的 待办事项通知 应用程序 (查看实时示例)。
js
const note = document.querySelector("ul");
// Let us open version 4 of our database
const DBOpenRequest = window.indexedDB.open("toDoList", 4);
// these two event handlers act on the database being opened
// successfully, or not
DBOpenRequest.onerror = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Error loading database.";
};
DBOpenRequest.onsuccess = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Database initialized.";
// store the result of opening the database in the db
// variable. This is used a lot later on, for opening
// transactions and suchlike.
db = DBOpenRequest.result;
};
规范
规范 |
---|
Indexed Database API 3.0 # ref-for-dom-idbfactory-open② |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 使用 IndexedDB
- 浏览器存储配额和驱逐标准.
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置一组键:
IDBKeyRange
- 检索和更改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考示例:待办事项通知 (查看实时示例)。