IDBFactory: deleteDatabase() 方法
注意: 此功能在 Web 工作线程 中可用。
deleteDatabase()
方法是 IDBFactory
接口的方法,用于请求删除数据库。该方法会立即返回一个 IDBOpenDBRequest
对象,并异步执行删除操作。
如果数据库成功删除,则会在此方法返回的请求对象上触发 success
事件,其 result
属性设置为 undefined
。如果在删除数据库时发生错误,则会在此方法返回的请求对象上触发 error
事件。
调用 deleteDatabase()
时,所有其他打开的连接到该特定数据库的连接都会收到 versionchange 事件。
语法
js
// For the current standard:
deleteDatabase(name)
// For the experimental version with `options` (see below):
deleteDatabase(name)
deleteDatabase(name, options)
参数
name
-
要删除的数据库的名称。请注意,尝试删除不存在的数据库不会抛出异常,这与
IDBDatabase.deleteObjectStore()
不同,后者如果名为对象存储不存在,则会抛出异常。 options
可选 非标准-
在 Gecko 中,从 版本 26 开始,您可以包含一个非标准的可选存储参数,该参数指定您是要删除一个
permanent
(默认值) IndexedDB,还是一个位于temporary
存储 (也称为共享池) 中的 IndexedDB。
返回值
一个 IDBOpenDBRequest
,后续与该请求相关的事件将在其上触发。
如果操作成功,请求的 result
属性值为 null
。
示例
js
const DBDeleteRequest = window.indexedDB.deleteDatabase("toDoList");
DBDeleteRequest.onerror = (event) => {
console.error("Error deleting database.");
};
DBDeleteRequest.onsuccess = (event) => {
console.log("Database deleted successfully");
console.log(event.result); // should be undefined
};
规范
规范 |
---|
Indexed Database API 3.0 # ref-for-dom-idbfactory-deletedatabase① |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置键范围:
IDBKeyRange
- 检索和修改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考示例:待办事项通知 (查看示例的实时版本).