IDBObjectStore: openCursor() Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die openCursor()
Methode des IDBObjectStore
-Interfaces gibt ein IDBRequest
-Objekt zurück und in einem separaten Thread ein neues IDBCursorWithValue
-Objekt. Sie wird verwendet, um mit einem Cursor durch einen Object Store zu iterieren.
Syntax
openCursor()
openCursor(query)
openCursor(query, direction)
Parameter
query
Optional-
Ein Schlüssel oder
IDBKeyRange
, der abgefragt werden soll. Wenn ein einzelner gültiger Schlüssel übergeben wird, entspricht dies standardmäßig einem Bereich, der nur diesen Schlüssel enthält. Wird nichts übergeben, entspricht dies standardmäßig einem Schlüsselbereich, der alle Datensätze in diesem Object Store auswählt. direction
Optional-
Ein String, der dem Cursor mitteilt, in welche Richtung er sich bewegen soll. Der Standardwert ist
next
. Gültige Werte sind:next
-
Der Cursor wird am Anfang des Stores geöffnet; dann gibt der Cursor alle Datensätze, auch Duplikate, in aufsteigender Reihenfolge der Schlüssel zurück.
nextunique
-
Der Cursor wird am Anfang des Stores geöffnet; dann gibt der Cursor alle Datensätze, die keine Duplikate sind, in aufsteigender Reihenfolge der Schlüssel zurück.
prev
-
Der Cursor wird am Ende des Stores geöffnet; dann gibt der Cursor alle Datensätze, auch Duplikate, in absteigender Reihenfolge der Schlüssel zurück.
prevunique
-
Der Cursor wird am Ende des Stores geöffnet; dann gibt der Cursor alle Datensätze, die keine Duplikate sind, in absteigender Reihenfolge der Schlüssel zurück.
Rückgabewert
Ein IDBRequest
-Objekt, auf dem nachfolgende Ereignisse in Bezug auf diese Operation ausgelöst werden.
Wenn die Operation erfolgreich ist, ist der Wert der result
-Eigenschaft der Anfrage:
- ein
IDBCursorWithValue
-Objekt, das auf den ersten Datensatz zeigt, der der angegebenen Abfrage entspricht null
, wenn keine passenden Datensätze gefunden wurden.
Ausnahmen
Diese Methode kann ein DOMException
der folgenden Typen auslösen:
InvalidStateError
DOMException
-
Wird ausgelöst, wenn dieses
IDBObjectStore
oderIDBIndex
gelöscht wurde. TransactionInactiveError
DOMException
-
Wird ausgelöst, wenn die Transaktion dieses
IDBObjectStore
inaktiv ist. DataError
DOMException
-
Wird ausgelöst, wenn der angegebene Schlüssel oder Schlüsselbereich ungültig ist.
Beispiele
In diesem einfachen Fragment erstellen wir eine Transaktion, rufen einen Object Store ab und verwenden dann einen Cursor, um alle Datensätze im Object Store zu durchlaufen:
const transaction = db.transaction("name", "readonly");
const objectStore = transaction.objectStore("name");
const request = objectStore.openCursor();
request.onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
// cursor.value contains the current record being iterated through
// this is where you'd do something with the result
cursor.continue();
} else {
// no more results
}
};
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbobjectstore-opencursor② |
Browser-Kompatibilität
Siehe auch
- Verwendung von IndexedDB
- Starten von Transaktionen:
IDBDatabase
- Verwendung von Transaktionen:
IDBTransaction
- Festlegen eines Schlüsselbereichs:
IDBKeyRange
- Abrufen und Ändern Ihrer Daten:
IDBObjectStore
- Verwendung von Cursoren:
IDBCursor
- Referenzbeispiel: To-do Notifications (Beispiel live ansehen).