語法
js
advance(count)
引數
計數-
向前移動遊標的次數。
返回值
無(undefined)。
異常
此方法可能會丟擲以下型別之一的DOMException:
TransactionInactiveErrorDOMException-
如果此
IDBCursor的事務處於非活動狀態,則丟擲此異常。 TypeError-
如果傳遞給
count引數的值為零或負數,則會丟擲此錯誤。 InvalidStateErrorDOMException-
如果游標當前正在迭代或已迭代到末尾,則丟擲此異常。
示例
在這個簡單的程式碼片段中,我們建立了一個事務,檢索了一個物件儲存,然後使用遊標迭代物件儲存中的記錄。在這裡,我們使用 cursor.advance(2) 每次跳過 2 個位置,這意味著只有一半的結果會被顯示。advance() 的工作方式與 IDBCursor.continue 類似,不同之處在於它允許您一次跳過多個記錄,而不僅僅是總是移到下一個記錄。
請注意,在迴圈的每次迭代中,您都可以使用 cursor.value.foo 從遊標物件下的當前記錄中獲取資料。完整的可執行示例,請參閱我們的 IDBCursor 示例 (即時檢視示例)。
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.");
}
};
}
規範
| 規範 |
|---|
| Indexed Database API 3.0 # ref-for-dom-idbcursor-advance① |
瀏覽器相容性
載入中…
另見
- 使用 IndexedDB
- 開始事務:
IDBDatabase - 使用事務:
IDBTransaction - 設定鍵的範圍:
IDBKeyRange - 檢索和修改資料:
IDBObjectStore - 使用遊標:
IDBCursor - 參考示例:待辦事項通知(檢視即時示例)。