IDBFactory: deleteDatabase() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 Web Workers 中可用。

IDBFactory 接口的 deleteDatabase() 方法用于请求删除数据库。该方法会立即返回一个 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①

浏览器兼容性

另见