IDBCursor: direction-Eigenschaft
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 schreibgeschützte Eigenschaft direction
des IDBCursor
-Interfaces ist ein String, der die Richtung der Traversierung des Cursors zurückgibt (zum Beispiel festgelegt durch IDBObjectStore.openCursor
). Siehe den Abschnitt Werte unten für mögliche Werte.
Wert
Ein String, der die Richtung angibt, in der der Cursor die Daten durchläuft. Mögliche Werte sind:
next
-
Diese Richtung bewirkt, dass der Cursor am Anfang der Quelle geöffnet wird.
nextunique
-
Diese Richtung bewirkt, dass der Cursor am Anfang der Quelle geöffnet wird. Bei jedem Schlüssel mit doppelten Werten wird nur der zuerst erfasste Datensatz (der dem Anfang am nächsten ist) ausgegeben.
prev
-
Diese Richtung bewirkt, dass der Cursor am Ende der Quelle geöffnet wird.
prevunique
-
Diese Richtung bewirkt, dass der Cursor am Ende der Quelle geöffnet wird. Bei jedem Schlüssel mit doppelten Werten wird nur der zuerst erfasste Datensatz (der dem Ende am nächsten ist) ausgegeben.
Beispiele
In diesem einfachen Fragment erstellen wir eine Transaktion, rufen einen Objekt-Store ab und verwenden dann einen Cursor, um alle Datensätze im Objekt-Store zu durchlaufen. In jeder Iteration protokollieren wir die Richtung des Cursors.
Hinweis:
Wir können die Reiserichtung des Cursors nicht mit der direction
-Eigenschaft ändern, da sie schreibgeschützt ist. Wir geben die Reiserichtung mit dem zweiten Argument von IDBObjectStore.openCursor
an.
Der Cursor erfordert nicht, dass wir die Daten basierend auf einem Schlüssel auswählen; wir können sie einfach alle erfassen. Beachten Sie auch, dass Sie in jeder Iteration der Schleife Daten aus dem aktuellen Datensatz unter dem Cursor-Objekt mit cursor.value.foo
erfassen können. Für ein vollständiges Arbeitsbeispiel siehe unser IDBCursor Beispiel (Beispiel live ansehen).
function backwards() {
list.textContent = "";
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");
objectStore.openCursor(null, "prev").onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
list.appendChild(listItem);
console.log(cursor.direction);
cursor.continue();
} else {
console.log("Entries displayed backwards.");
}
};
}
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbcursor-direction① |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Verwendung von IndexedDB
- Transaktionen starten:
IDBDatabase
- Verwendung von Transaktionen:
IDBTransaction
- Festlegung eines Schlüsselspektrums:
IDBKeyRange
- Abrufen und Ändern von Daten:
IDBObjectStore
- Verwendung von Cursors:
IDBCursor
- Referenzbeispiel: To-do Benachrichtigungen (Beispiel live ansehen).