Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

IDBFactory: deleteDatabase()-Methode

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die deleteDatabase()-Methode des IDBFactory-Interfaces fordert die Löschung einer Datenbank an. Die Methode gibt sofort ein IDBOpenDBRequest-Objekt zurück und führt den Löschvorgang asynchron aus.

Syntax

js
// For the current standard:
deleteDatabase(name)

// For the experimental version with `options` (see below):
deleteDatabase(name)
deleteDatabase(name, options)

Parameter

name

Der Name der Datenbank, die Sie löschen möchten. Beachten Sie, dass der Versuch, eine nicht vorhandene Datenbank zu löschen, keine Ausnahme auslöst, im Gegensatz zu IDBDatabase.deleteObjectStore(), das eine Ausnahme auslöst, wenn der benannte Objektspeicher nicht vorhanden ist.

options Optional

In Gecko können Sie seit Version 26 einen nicht standardmäßigen optionalen Speicherparameter angeben, der festlegt, ob Sie eine permanent-IndexedDB (der Standardwert) oder eine indexedDB im temporary-Speicher (auch als Shared Pool bezeichnet) löschen möchten.

Rückgabewert

Ein IDBOpenDBRequest, auf dem nachfolgende Ereignisse im Zusammenhang mit dieser Anfrage ausgelöst werden.

Wenn der Vorgang erfolgreich ist, ist der Wert der result-Eigenschaft der Anfrage undefined.

Beschreibung

Wenn die Datenbank erfolgreich gelöscht wird, wird auf dem von deleteDatabase() zurückgegebenen Anfrageobjekt ein success-Ereignis ausgelöst, dessen result auf undefined gesetzt ist. Tritt während des Löschens ein Fehler auf, wird auf dem von dieser Methode zurückgegebenen Anfrageobjekt ein error-Ereignis ausgelöst.

Wenn deleteDatabase() aufgerufen wird, wird an alle anderen offenen Verbindungen zu dieser bestimmten Datenbank ein versionchange-Ereignis gesendet, damit sie geschlossen werden können, sodass die Löschung fortgesetzt werden kann.

Wenn eine Verbindung nicht als Reaktion auf das versionchange-Ereignis geschlossen wird, wird die Löschung blockiert: Das success-Ereignis der Anfrage wird nicht ausgelöst, und stattdessen wird auf der Anfrage ein blocked-Ereignis ausgelöst. Die Löschung bleibt ausstehend, bis jede Verbindung zur Datenbank geschlossen wurde.

Schließen Sie jede Verbindung, damit der Vorgang abgeschlossen werden kann. Dies geschieht typischerweise durch den Aufruf von IDBDatabase.close() innerhalb des Ereignishandlers für versionchange:

js
// db is an open connection (e.g. from a previous indexedDB.open() success)
db.addEventListener("versionchange", () => {
  db.close();
});

Beispiele

Grundlegende Verwendung

js
const dbDeleteRequest = indexedDB.deleteDatabase("toDoList");

dbDeleteRequest.onerror = (event) => {
  console.error("Error deleting database.");
};

dbDeleteRequest.onsuccess = (event) => {
  console.log("Database deleted successfully");

  console.log(dbDeleteRequest.result); // undefined
};

Spezifikationen

Spezifikation
Indexed Database API 3.0
# ref-for-dom-idbfactory-deletedatabase①

Browser-Kompatibilität

Siehe auch