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 的浏览器中加载。

另请参阅