IDBCursor: continue() 方法
注意:此功能在 Web Workers 中可用。
continue() 方法是 IDBCursor 介面的一部分,它將遊標沿著其方向前進到下一個位置,指向鍵與可選的鍵引數匹配的條目。如果未指定鍵,則遊標將根據其方向前進到緊鄰的下一個位置。
語法
js
continue()
continue(key)
引數
key可選-
用於定位遊標的鍵。
返回值
無(undefined)。
異常
此方法可能會丟擲以下型別之一的DOMException:
TransactionInactiveErrorDOMException-
如果此
IDBCursor的事務處於非活動狀態,則丟擲此異常。 DataErrorDOMException-
如果鍵引數滿足以下任一條件,則會丟擲異常
- 鍵不是有效鍵。
- 鍵小於或等於當前遊標位置,並且遊標的方向為
next或nextunique。 - 鍵大於或等於當前遊標位置,並且當前遊標的方向為
prev或prevunique。
InvalidStateErrorDOMException-
如果游標當前正在迭代或已迭代到末尾,則丟擲此異常。
示例
在這個簡單的程式碼片段中,我們建立了一個事務,檢索了一個物件儲存,然後使用遊標遍歷物件儲存中的所有記錄。遊標不需要我們根據鍵來選擇資料;我們可以直接獲取所有資料。另外請注意,在迴圈的每一次迭代中,您都可以透過 cursor.value.foo 從遊標物件下的當前記錄中獲取資料。有關完整的可執行示例,請參閱我們的 IDBCursor 示例(即時檢視示例)。
js
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.");
}
};
}
規範
| 規範 |
|---|
| Indexed Database API 3.0 # ref-for-dom-idbcursor-continue① |
瀏覽器相容性
載入中…
另見
- 使用 IndexedDB
- 開始事務:
IDBDatabase - 使用事務:
IDBTransaction - 設定鍵的範圍:
IDBKeyRange - 檢索和修改資料:
IDBObjectStore - 使用遊標:
IDBCursor - 參考示例:待辦事項通知(檢視即時示例)。