IDBFactory: open() 方法
注意:此功能在 Web Workers 中可用。
open() 方法是 IDBFactory 接口的一个方法,用于请求打开一个数据库连接。
该方法会立即返回一个 IDBOpenDBRequest 对象,并异步执行打开操作。如果操作成功,将会在该方法返回的请求对象上触发一个 success 事件,其 result 属性将被设置为新数据库连接的 IDBDatabase 对象。
可能会触发 upgradeneeded、blocked 或 versionchange 事件。
语法
js
open(name)
open(name, version)
参数
name-
数据库的名称。
version可选-
可选。用于打开数据库的版本号。如果未提供版本号且数据库已存在,则会以不更改其版本的方式打开数据库连接。如果未提供版本号且数据库不存在,则会以版本号
1创建数据库。
返回值
一个 IDBOpenDBRequest 对象,后续与此请求相关的事件将在此对象上触发。
如果操作成功,请求的 result 属性的值将是一个代表数据库连接的 IDBDatabase 对象。
异常
TypeError-
如果
version的值不是大于零的数字,则会抛出此异常。
示例
调用 open 并使用当前规范的 version 参数的示例
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② |
浏览器兼容性
加载中…
另见
- 使用 IndexedDB
- 浏览器存储配额和淘汰标准.
- 开始事务:
IDBDatabase - 使用事务:
IDBTransaction - 设置键的范围:
IDBKeyRange - 检索和修改数据:
IDBObjectStore - 使用游标:
IDBCursor - 参考示例:待办事项通知(查看实时示例)。