Baseline Widely available
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die delete()
-Methode des IDBObjectStore
-Interfaces gibt ein IDBRequest
-Objekt zurück und löscht in einem separaten Thread den oder die angegebenen Datensätze.
Es kann entweder ein Schlüssel oder ein IDBKeyRange
übergeben werden, was erlaubt, einen oder mehrere Datensätze aus einem Speicher zu löschen. Um alle Datensätze in einem Speicher zu löschen, verwenden Sie IDBObjectStore.clear
.
Beachten Sie, dass, wenn Sie einen IDBCursor
verwenden, Sie die IDBCursor.delete()
-Methode nutzen können, um den aktuellen Datensatz effizienter zu löschen â ohne explizit den Schlüssel des Datensatzes suchen zu müssen.
key
Der Schlüssel des zu löschenden Datensatzes oder ein IDBKeyRange
zum Löschen aller Datensätze mit Schlüsseln im Bereich.
Ein IDBRequest
-Objekt, auf dem folgende Ereignisse im Zusammenhang mit dieser Operation ausgelöst werden.
Wenn die Operation erfolgreich ist, ist der Wert der result
-Eigenschaft der Anforderung undefined
.
Diese Methode kann einen DOMException
der folgenden Typen auslösen:
TransactionInactiveError
DOMException
Wird ausgelöst, wenn die Transaktion dieses Objekt-Speichers inaktiv ist.
ReadOnlyError
DOMException
Wird ausgelöst, wenn der Transaktionsmodus des Objekt-Speichers schreibgeschützt ist.
InvalidStateError
DOMException
Wird ausgelöst, wenn der Objekt-Speicher gelöscht wurde.
DataError
DOMException
Wird ausgelöst, wenn key
kein gültiger Schlüssel oder ein Schlüsselbereich ist.
Das folgende Codebeispiel zeigt die Funktion deleteItem()
, die Teil der Beispiel-App für To-do-Benachrichtigungen ist. Diese App speichert To-do-Listenartikel unter Verwendung von IndexedDB. Sie können den vollständigen Code der App auf GitHub ansehen und die App live ausprobieren.
Die Funktion deleteItem()
wird aufgerufen, wenn der Benutzer den Button zum Löschen eines To-do-Listenartikels klickt. Der Artikelschlüssel ist im 'data-task'
Daten-Attribut des Buttons festgelegt, sodass die Funktion weiÃ, welcher Artikel gelöscht werden soll. Die Funktion öffnet eine Datenbanktransaktion, in der der Artikel gelöscht wird, indem sie seinen Schlüssel angibt. Wenn die Transaktion abgeschlossen ist, aktualisiert die Funktion die App-Oberfläche, um zu berichten, dass der Artikel gelöscht wurde.
Beachten Sie, dass in dieser Funktion db
eine globale Variable ist, die sich auf ein IDBDatabase
-Objekt bezieht, das bei Laden der App initialisiert wird.
function deleteItem(event) {
// retrieve the name of the task we want to delete
let dataTask = event.target.getAttribute("data-task");
// open a database transaction and delete the task, finding it by the name we retrieved above
let transaction = db.transaction(["toDoList"], "readwrite");
let request = transaction.objectStore("toDoList").delete(dataTask);
// report that the data item has been deleted
transaction.oncomplete = () => {
// delete the parent of the button, which is the list item, so it no longer is displayed
event.target.parentNode.parentNode.removeChild(event.target.parentNode);
note.appendChild(document.createElement("li")).textContent =
`Task "${dataTask}" deleted.`;
};
}
Spezifikationen Browser-Kompatibilität Siehe auch
IDBDatabase
IDBTransaction
IDBKeyRange
IDBObjectStore
IDBCursor
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4