delete()
方法在
IDBObjectStore
interface returns an
IDBRequest
object, and, in a separate thread, deletes the specified record or records.
Either a key or an
IDBKeyRange
can be passed, allowing one or multiple records to be deleted from a store. To delete all records in a store, use
IDBObjectStore.clear
.
Bear in mind that if you are using a
IDBCursor
,可以使用
IDBCursor.delete()
method to more efficiently delete the current record — without having to explicitly look up the record's key.
var request = objectStore.delete(Key); var request = objectStore.delete(KeyRange);
IDBKeyRange
to delete all records with keys in range.
IDBRequest
object on which subsequent events related to this operation are fired. The
request.result
attribute is set to undefined.
此方法可能引发
DOMException
of the following types:
| 异常 | 描述 |
|---|---|
TransactionInactiveError
|
This object store's transaction is inactive. |
ReadOnlyError
|
The object store's transaction mode is read-only. |
InvalidStateError
|
The object store has been deleted. |
DataError
|
key 不是 valid key 或 key range . |
In the following code snippet, we open a read/write transaction on our database and delete one specific record out of our object store using
delete()
— a sample record with the key "Walk dog". For a full working example, see our
待办通知
app (
实时查看范例
)。
// Let us open our database var DBOpenRequest = window.indexedDB.open("toDoList", 4); DBOpenRequest.onsuccess = function(event) { note.innerHTML += '<li>Database initialised.</li>'; // store the result of opening the database in the db variable. This is used a lot below db = DBOpenRequest.result; // Run the deleteData() function to delete a record from the database deleteData(); }; function deleteData() { // open a read/write db transaction, ready for deleting the data var transaction = db.transaction(["toDoList"], "readwrite"); // report on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerHTML += '<li>Transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerHTML += '<li>Transaction not opened due to error: ' + transaction.error + '</li>'; }; // create an object store on the transaction var objectStore = transaction.objectStore("toDoList"); // Make a request to delete the specified record out of the object store var objectStoreRequest = objectStore.delete("Walk dog"); objectStoreRequest.onsuccess = function(event) { // report the success of our request note.innerHTML += '<li>Request successful.</li>'; }; };
| 规范 | 状态 | 注释 |
|---|---|---|
|
索引数据库 API 2.0
The definition of 'delete()' in that specification. |
推荐 | |
|
索引数据库 API 草案
The definition of 'delete()' in that specification. |
推荐 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
delete
|
Chrome
24
|
Edge 12 |
Firefox
16
|
IE 部分支持 10 | Opera 15 | Safari 7 |
WebView Android
Yes
|
Chrome Android
25
|
Firefox Android 22 | Opera Android 14 | Safari iOS 8 |
Samsung Internet Android
1.5
|
完整支持
部分支持
要求使用供应商前缀或不同名称。
IDBDatabase
IDBTransaction
IDBKeyRange
IDBObjectStore
IDBCursor
IDBObjectStore
IDBCursor
IDBCursorSync
IDBCursorWithValue
IDBDatabase
IDBDatabaseException
IDBDatabaseSync
IDBEnvironment
IDBEnvironmentSync
IDBFactory
IDBFactorySync
IDBIndex
IDBIndexSync
IDBKeyRange
IDBObjectStoreSync
IDBOpenDBRequest
IDBRequest
IDBTransaction
IDBTransactionSync
IDBVersionChangeEvent
IDBVersionChangeRequest