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

js
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:

js
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).

js
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