IDBCursorWithValue
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.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Schnittstelle IDBCursorWithValue der IndexedDB API stellt einen Cursor dar, mit dem mehrere Datensätze in einer Datenbank durchlaufen werden können. Sie entspricht IDBCursor, enthält jedoch zusätzlich die Eigenschaft value.
Der Cursor hat eine Quelle, die angibt, welchen Index oder Object Store er durchläuft. Er hat eine Position innerhalb des Bereichs und bewegt sich in aufsteigender oder absteigender Reihenfolge der Datensatzschlüssel. Mit dem Cursor kann eine Anwendung alle Datensätze im Bereich des Cursors asynchron verarbeiten.
Sie können beliebig viele Cursor gleichzeitig verwenden. Für einen bestimmten Cursor erhalten Sie immer dasselbe IDBCursorWithValue-Objekt. Operationen werden auf dem zugrunde liegenden Index oder Object Store ausgeführt.
Instanzeigenschaften
Erbt Eigenschaften von der übergeordneten Schnittstelle IDBCursor.
IDBCursorWithValue.valueSchreibgeschützt-
Gibt den Wert an der aktuellen Cursorposition zurück.
Instanzmethoden
Erbt Methoden von der übergeordneten Schnittstelle IDBCursor.
Beispiel
In diesem Beispiel erstellen wir eine Transaktion, rufen einen Object Store ab und durchlaufen anschließend mit einem Cursor alle Datensätze im Object Store. Bei einem Cursor müssen wir die Daten nicht anhand eines Schlüssels auswählen; wir können einfach alle abrufen. Beachten Sie außerdem, dass Sie bei jedem Schleifendurchlauf mit cursor.value.foo auf Daten des Datensatzes an der aktuellen Cursorposition zugreifen können. Ein vollständiges, lauffähiges Beispiel finden Sie in unserem IDBCursor-Beispiel (Beispiel live ansehen).
function displayData() {
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.continue();
} else {
console.log("Entries all displayed.");
}
};
}
Spezifikationen
| Spezifikation |
|---|
| Indexed Database API 3.0> # idbcursorwithvalue> |
Browser-Kompatibilität
Siehe auch
- IndexedDB verwenden
- Transaktionen starten:
IDBDatabase - Transaktionen verwenden:
IDBTransaction - Einen Schlüsselbereich festlegen:
IDBKeyRange - Daten abrufen und ändern:
IDBObjectStore - Cursor verwenden:
IDBCursor - Referenzbeispiel: To-do Notifications (Beispiel live ansehen).