IDBObjectStore:clear() 方法

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

clear() 方法是 IDBObjectStore 接口的方法,它创建并立即返回一个 IDBRequest 对象,并在单独的线程中清除此对象存储。这用于删除对象存储中的所有当前数据。

清除对象存储包括从对象存储中删除所有记录,以及删除引用该对象存储的索引中的所有记录。要仅删除存储中的一些记录,请使用 IDBObjectStore.delete 并传递一个键或 IDBKeyRange

语法

js
clear()

参数

无。

返回值

一个 IDBRequest 对象,后续与该操作相关的事件将在该对象上触发。

如果操作成功,请求的 result 属性值为 undefined

异常

ReadOnlyError DOMException

如果与该操作关联的事务处于只读 模式,则抛出此异常。

TransactionInactiveError DOMException

如果此 IDBObjectStore 的事务处于非活动状态,则抛出此异常。

示例

在以下代码片段中,我们对数据库打开一个读写事务,并使用 clear() 清除对象存储中的所有当前数据。有关完整的可运行示例,请参阅我们的 待办事项通知 应用程序(查看示例)。

js
// Let us open our database
const DBOpenRequest = window.indexedDB.open("toDoList", 4);

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 below
  db = DBOpenRequest.result;

  // Clear all the data from the object store
  clearData();
};

function clearData() {
  // open a read/write db transaction, ready for clearing the data
  const transaction = db.transaction(["toDoList"], "readwrite");

  // report on the success of the transaction completing, when everything is done
  transaction.oncomplete = (event) => {
    note.appendChild(document.createElement("li")).textContent =
      "Transaction completed.";
  };

  transaction.onerror = (event) => {
    note.appendChild(document.createElement("li")).textContent =
      `Transaction not opened due to error: ${transaction.error}`;
  };

  // create an object store on the transaction
  const objectStore = transaction.objectStore("toDoList");

  // Make a request to clear all the data out of the object store
  const objectStoreRequest = objectStore.clear();

  objectStoreRequest.onsuccess = (event) => {
    // report the success of our request
    note.appendChild(document.createElement("li")).textContent =
      "Request successful.";
  };
}

规范

规范
Indexed Database API 3.0
# ref-for-dom-idbobjectstore-clear③

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅