IDBCursor: direction 屬性
注意:此功能在 Web Workers 中可用。
IDBCursor 介面的只讀屬性 direction 是一個字串,用於返回游標的遍歷方向(例如,透過 IDBObjectStore.openCursor 設定)。有關可能的值,請參閱下面的值部分。
值
一個字串,指示游標遍歷資料的方向。可能的值包括:
next-
此方向會導致游標在源的開頭開啟。
nextunique-
此方向會導致游標在源的開頭開啟。對於具有重複值的每個鍵,只返回第一個訪問的記錄(最接近開頭)。
prev-
此方向會導致游標在源的末尾開啟。
prevunique-
此方向會導致游標在源的末尾開啟。對於具有重複值的每個鍵,只返回第一個訪問的記錄(最接近末尾)。
示例
在這個簡單的程式碼片段中,我們建立了一個事務,檢索了一個物件儲存,然後使用游標遍歷物件儲存中的所有記錄。在每次迭代中,我們都會記錄游標的方向。
注意:我們無法使用 direction 屬性更改游標的遍歷方向,因為它只讀。我們透過 IDBObjectStore.openCursor 的第二個引數來指定遍歷方向。
游標不需要我們根據鍵來選擇資料;我們可以直接獲取所有資料。另請注意,在迴圈的每次迭代中,你可以使用 cursor.value.foo 從游標物件下的當前記錄中獲取資料。有關完整的可工作示例,請參閱我們的 IDBCursor 示例(線上檢視示例)。
js
function backwards() {
list.textContent = "";
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");
objectStore.openCursor(null, "prev").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);
console.log(cursor.direction);
cursor.continue();
} else {
console.log("Entries displayed backwards.");
}
};
}
規範
| 規範 |
|---|
| Indexed Database API 3.0 # ref-for-dom-idbcursor-direction① |
瀏覽器相容性
載入中…
另見
- 使用 IndexedDB
- 開始事務:
IDBDatabase - 使用事務:
IDBTransaction - 設定鍵的範圍:
IDBKeyRange - 檢索和修改資料:
IDBObjectStore - 使用遊標:
IDBCursor - 參考示例:待辦事項通知(檢視即時示例)。