IDBFactory: open() Methode
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die open()
-Methode des IDBFactory
-Interfaces fordert das Öffnen einer Verbindung zu einer Datenbank an.
Die Methode gibt sofort ein IDBOpenDBRequest
-Objekt zurück und führt die Öffnungsoperation asynchron aus. Wenn die Operation erfolgreich ist, wird ein success
-Ereignis auf dem von dieser Methode zurückgegebenen Anforderungsobjekt ausgelöst, wobei dessen result
-Attribut auf das neue IDBDatabase
-Objekt für die Verbindung gesetzt wird.
Kann upgradeneeded
, blocked
oder versionchange
Ereignisse auslösen.
Syntax
open(name)
open(name, version)
Parameter
name
-
Der Name der Datenbank.
version
Optional-
Optional. Die Version, mit der die Datenbank geöffnet werden soll. Wenn die Version nicht angegeben wird und die Datenbank existiert, wird eine Verbindung zur Datenbank hergestellt, ohne deren Version zu ändern. Wenn die Version nicht angegeben wird und die Datenbank nicht existiert, wird sie mit Version
1
erstellt.
Rückgabewert
Ein IDBOpenDBRequest
Objekt, auf dem nachfolgende Ereignisse zu dieser Anfrage ausgelöst werden.
Wenn die Operation erfolgreich ist, ist der Wert der result
-Eigenschaft der Anfrage ein IDBDatabase
-Objekt, das die Verbindung zur Datenbank darstellt.
Ausnahmen
TypeError
-
Wird ausgelöst, wenn der Wert von
version
keine Zahl größer als Null ist.
Beispiele
Beispiel für den Aufruf von open
mit dem version
-Parameter der aktuellen Spezifikation:
const request = window.indexedDB.open("toDoList", 4);
Im folgenden Code-Schnipsel stellen wir eine Anfrage zum Öffnen einer Datenbank und fügen Behandlungsroutinen für die Erfolgs- und Fehlerfälle hinzu. Für ein vollständiges Arbeitsbeispiel siehe unsere To-do Notifications App (Beispiel live ansehen).
const note = document.querySelector("ul");
// Let us open version 4 of our database
const DBOpenRequest = window.indexedDB.open("toDoList", 4);
// these two event handlers act on the database being opened
// successfully, or not
DBOpenRequest.onerror = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Error loading database.";
};
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 later on, for opening
// transactions and suchlike.
db = DBOpenRequest.result;
};
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbfactory-open② |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Verwendung von IndexedDB
- Speicherquoten und Räumungskriterien von Browsern.
- Starten von Transaktionen:
IDBDatabase
- Verwendung von Transaktionen:
IDBTransaction
- Festlegen eines Schlüsselspektrums:
IDBKeyRange
- Abrufen und Ändern Ihrer Daten:
IDBObjectStore
- Verwendung von Cursors:
IDBCursor
- Referenzbeispiel: To-do Notifications (Beispiel live ansehen).