IDBCursor: advance() Methode

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Die advance() Methode des IDBCursor Interfaces legt fest, wie oft ein Cursor seine Position nach vorne bewegen soll.

Syntax

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

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