IDBCursor: direction 屬性

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

注意:此功能在 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①

瀏覽器相容性

另見