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

View in English Always switch to English

IDBRequest

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.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

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

Das IDBRequest Interface der IndexedDB API bietet Zugriff auf die Ergebnisse asynchroner Anfragen an Datenbanken und Datenbankobjekte mittels Event-Handler-Attributen.

EventTarget IDBRequest

Instanzeigenschaften

Erbt auch Eigenschaften von EventTarget.

IDBRequest.error Schreibgeschützt

Gibt eine DOMException im Falle einer fehlgeschlagenen Anfrage zurück, die angibt, was schiefgelaufen ist.

IDBRequest.result Schreibgeschützt

Gibt das Ergebnis der Anfrage zurück. Ist die Anfrage nicht abgeschlossen, ist das Ergebnis nicht verfügbar und es wird eine InvalidStateError Ausnahme ausgelöst.

IDBRequest.source Schreibgeschützt

Die Quelle der Anfrage, wie etwa ein IDBIndex oder ein IDBObjectStore. Wenn keine Quelle existiert (wie bei einem Aufruf von IDBFactory.open), wird null zurückgegeben.

IDBRequest.readyState Schreibgeschützt

Der Zustand der Anfrage. Jede Anfrage beginnt im pending Zustand. Der Zustand ändert sich zu done, wenn die Anfrage erfolgreich abgeschlossen ist oder ein Fehler auftritt.

IDBRequest.transaction Schreibgeschützt

Die Transaktion der Anfrage. Diese Eigenschaft kann bei bestimmten Anfragen null sein, zum Beispiel bei denen, die von IDBFactory.open zurückgegeben werden, es sei denn, ein Upgrade ist notwendig. (Sie verbinden sich lediglich mit einer Datenbank, daher gibt es keine Transaktion, die zurückgegeben werden könnte).

Instanzmethoden

Keine Methoden, aber erbt Methoden von EventTarget.

Ereignisse

Diese Ereignisse können mit addEventListener() abgehört oder indem ein Event-Listener der oneventname Eigenschaft dieses Interface zugewiesen wird:

error

Wird ausgelöst, wenn ein Fehler eine Anfrage fehlschlagen lässt.

success

Wird ausgelöst, wenn eine IDBRequest erfolgreich ist.

Beschreibung

Die Ergebnisse aller Lese- und Schreiboperationen in der Datenbank werden mit einem Anfrageobjekt dieses Typs gemeldet.

Das Anfrageobjekt enthält zunächst keine Informationen über das Ergebnis der Operation, aber sobald Informationen verfügbar werden, wird ein Ereignis auf der Anfrage ausgelöst, und die Informationen werden über die Eigenschaften der IDBRequest Instanz zugänglich.

Alle asynchronen Operationen geben sofort eine IDBRequest Instanz zurück. Jede Anfrage hat einen readyState, der auf den 'pending' Zustand gesetzt ist; dieser ändert sich zu 'done', wenn die Anfrage abgeschlossen oder fehlgeschlagen ist. Wenn der Zustand auf done gesetzt wird, liefert jede Anfrage ein result und ein error, und ein Ereignis wird auf der Anfrage ausgelöst. Wenn der Zustand noch pending ist, führt jeder Versuch, auf result oder error zuzugreifen, zu einer InvalidStateError Ausnahme.

Einfach ausgedrückt, alle asynchronen Methoden geben ein Anfrageobjekt zurück. Wenn die Anfrage erfolgreich abgeschlossen wurde, wird das Ergebnis über die result Eigenschaft verfügbar gemacht, und ein Ereignis, das den Erfolg signalisiert, wird bei der Anfrage ausgelöst (success). Wenn ein Fehler bei der Durchführung der Operation auftritt, wird die Ausnahme über die error Eigenschaft verfügbar gemacht und ein Fehlerereignis wird ausgelöst (error). Die Daten in result hängen von der aufgerufenen Operation ab.

Das Interface IDBOpenDBRequest ist von IDBRequest abgeleitet.

Beispiel

Grundlegende Verwendung

Im folgenden Code-Snippet öffnen wir eine Datenbank asynchron und stellen eine Anfrage; Event-Listener für error und success sind enthalten, um Erfolgs- und Fehlerfälle zu behandeln. Für ein vollständiges funktionierendes Beispiel, sehen Sie sich unsere To-do Notifications App an (Beispiel live ansehen.)

js
let db;

// Let us open our database
const DBOpenRequest = window.indexedDB.open("toDoList", 4);

// Handle the case where there is an error opening the database
DBOpenRequest.addEventListener("error", (event) => {
  note.appendChild(document.createElement("li")).textContent =
    "Error loading database.";
});

// Handle the case where the database opens successfully
DBOpenRequest.addEventListener("success", (event) => {
  note.appendChild(document.createElement("li")).textContent =
    "Database initialized.";

  // store the result of opening the database.
  db = DBOpenRequest.result;
});

Spezifikationen

Spezifikation
Indexed Database API 3.0
# request-api

Browser-Kompatibilität

Siehe auch