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

js
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).

js
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