IDBCursor: advance()-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 advance()
-Methode der IDBCursor
-Schnittstelle legt fest, wie oft ein Cursor seine Position nach vorne verschieben soll.
Syntax
advance(count)
Parameter
count
-
Die Anzahl der Schritte, um die der Cursor nach vorne bewegt werden soll.
Rückgabewert
Keiner (undefined
).
Ausnahmen
Diese Methode kann eine DOMException
eines der folgenden Typen auslösen:
TransactionInactiveError
DOMException
-
Wird ausgelöst, wenn die Transaktion dieses
IDBCursor
inaktiv ist. TypeError
-
Wird ausgelöst, wenn der übergebene Wert im Parameter
count
null oder eine negative Zahl war. InvalidStateError
DOMException
-
Wird ausgelöst, wenn der Cursor derzeit iteriert wird oder über sein Ende hinaus iteriert hat.
Beispiele
In diesem einfachen Fragment erstellen wir eine Transaktion, rufen einen Objektspeicher ab und verwenden dann einen Cursor, um die Datensätze im Objektspeicher zu durchlaufen. Hier verwenden wir cursor.advance(2)
, um jedes Mal 2 Plätze vorzuspringen, was bedeutet, dass nur jedes zweite Ergebnis angezeigt wird. advance()
funktioniert ähnlich wie IDBCursor.continue
, ermöglicht jedoch das Springen über mehrere Datensätze gleichzeitig, anstatt immer nur zum nächsten Datensatz zu gehen.
Beachten Sie, dass Sie in jeder Schleifeniteration Daten aus dem aktuellen Datensatz unter dem Cursorobjekt mit cursor.value.foo
abrufen können. Für ein vollständiges funktionierendes Beispiel, siehe unser Beispiel für IDBCursor (Beispiel live ansehen).
function advanceResult() {
list.textContent = "";
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");
objectStore.openCursor().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);
cursor.advance(2);
} else {
console.log("Every other entry displayed.");
}
};
}
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbcursor-advance① |
Browser-Kompatibilität
BCD tables only load in the browser
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 Cursorn:
IDBCursor
- Referenzbeispiel: To-do-Benachrichtigungen (Beispiel live ansehen).