IDBFactory: databases()-Methode
Baseline 2024Newly available
Since May 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die databases
-Methode der IDBFactory
-Schnittstelle gibt ein Promise
zurück, das mit einem Array von Objekten erfüllt wird, die den Namen und die Version aller verfügbaren Datenbanken enthalten.
Dies ist ein Schnappschuss der Datenbanken, der hauptsächlich dazu gedacht ist, Webanwendungen zu ermöglichen, zu überprüfen, welche Datenbanken erstellt wurden — um zum Beispiel Datenbanken zu bereinigen, die von früheren Versionen des Anwendungscodes erstellt wurden.
Syntax
databases()
Parameter
Keine.
Rückgabewert
Ein Promise
, das mit einem Array von Objekten erfüllt wird, das einen Schnappschuss der verfügbaren Datenbanken darstellt (oder mit den unten aufgeführten Fehlern/Ausnahmen abgelehnt wird).
Jedes Objekt im Array hat die folgenden Eigenschaften:
Beachten Sie, dass die Reihenfolge der zurückgegebenen Objekte nicht definiert ist.
Ausnahmen
SecurityError
DOMException
-
Wird ausgelöst, wenn die Methode von einem undurchsichtigen Ursprung aufgerufen wird oder der Benutzer den Speicher deaktiviert hat.
UnknownError
DOMException
-
Wird ausgelöst, wenn die Menge der verfügbaren Datenbanken aus irgendeinem Grund nicht bestimmt werden kann.
Beispiele
Datenbanken erstellen und auflisten
Dieses Beispiel erstellt/öffnet eine Anzahl von Datenbanken. Bei erfolgreicher Initialisierung jeder Datenbank werden alle verfügbaren Datenbanken aufgelistet.
JavaScript
Zuerst definieren wir die Funktion, die verwendet wird, um die verfügbaren Datenbanken zu erhalten und zu protokollieren.
Diese wartet auf das Promise, das von indexedDB.databases()
zurückgegeben wird, und iteriert dann das Array, um die Werte jedes Elements aufzulisten:
async function getDb() {
const databases = await indexedDB.databases();
log("List databases:");
databases.forEach((element) => {
log(`name: ${element.name}, version: ${element.version}`);
});
}
Um zu demonstrieren, wie die obige Funktion verwendet wird, erstellen wir unten zwei Datenbanken. Für jede Datenbank protokollieren wir, unmittelbar bevor die Datenbank geöffnet wird. Wir protokollieren auch bei erfolgreicher Initialisierung (oder Fehler) und anschließend auch die verfügbaren Datenbanken.
// Create a database named toDoList with default version (1)
const dbName1 = "toDoList";
log(`Opening: ${dbName1}`);
let DBOpenRequest = window.indexedDB.open(dbName1);
DBOpenRequest.addEventListener("error", (event) => {
log(`Error opening: ${dbName1}`);
getDb();
});
DBOpenRequest.addEventListener("success", (event) => {
log(`Initialized: ${dbName1}`);
getDb();
});
// Create database "AnotherDb"
const dbName2 = "AnotherDb";
log(`Opening ${dbName2}`);
DBOpenRequest = window.indexedDB.open(dbName2, 2);
DBOpenRequest.addEventListener("error", (event) => {
log(`Error opening: ${dbName2}`);
getDb();
});
DBOpenRequest.addEventListener("success", (event) => {
log(`Initialized: ${dbName2}`);
getDb();
});
Ergebnis
Das Ergebnis wird unten gezeigt. Beachten Sie, dass die Zeit, die zum Abrufen der Datenbanken benötigt wird, und ihre Reihenfolge nicht definiert sind.
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbfactory-databases① |
Browser-Kompatibilität
Siehe auch
- Verwendung von IndexedDB
- Starten von Transaktionen:
IDBDatabase
- Verwendung von Transaktionen:
IDBTransaction
- Festlegen eines Schlüsselbereichs:
IDBKeyRange
- Abrufen und Änderungen an Ihren Daten vornehmen:
IDBObjectStore
- Verwendung von Cursoren:
IDBCursor
- Referenzbeispiel: To-do Notifications (Beispiel live ansehen).