IDBCursor: advance() Methode
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die advance()
Methode des IDBCursor
Interfaces legt fest, wie oft ein Cursor seine Position
nach vorne bewegen soll.
Syntax
advance(count)
Parameter
count
-
Die Anzahl der Male, die der Cursor nach vorne bewegt werden soll.
Rückgabewert
Keiner (undefined
).
Ausnahmen
Diese Methode kann ein DOMException
von einem der folgenden Typen auslösen:
TransactionInactiveError
DOMException
-
Wird ausgelöst, wenn die Transaktion dieses IDBCursors inaktiv ist.
TypeError
-
Wird ausgelöst, wenn der in den
count
Parameter übergebene Wert Null oder eine negative Zahl war. InvalidStateError
DOMException
-
Wird ausgelöst, wenn der Cursor derzeit iteriert wird oder bereits ü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 Positionen vorzuspringen, was bedeutet, dass nur
jedes zweite Ergebnis angezeigt wird. advance()
funktioniert ähnlich wie
IDBCursor.continue
, erlaubt Ihnen jedoch, mehrere Datensätze gleichzeitig zu überspringen anstatt immer nur zum nächsten Datensatz zu gehen.
Beachten Sie, dass Sie in jeder Iteration der Schleife
Daten aus dem aktuellen Datensatz unter dem Cursor-Objekt mit cursor.value.foo
abrufen können. Für ein vollständiges Arbeitsbeispiel sehen Sie sich unser IDBCursor-Beispiel an (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
- Transaktionen starten:
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).