IDBLocaleAwareKeyRange

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

非標準: この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

IndexedDB APIIDBLocaleAwareKeyRange は、IDBKeyRange の Firefox 固有バージョンです。全く同じように動作し、同じプロパティとメソッドを持ちますが、locale の値を指定して生成したインデックスを表す IDBIndex オブジェクトとともに使用することを意図しています。(createIndex() の引数 options を参照してください) すなわち、ロケールを意識した並べ替えが有効になっています。

インスタンスメソッド

このインターフェイスは、親インターフェイスの IDBKeyRange のメソッドを全て継承します。

インスタンスプロパティ

このインターフェイスは、親インターフェイスの IDBKeyRange のプロパティを全て継承します。

ただし、IDBLocaleAwareKeyRangeIDBKeyRange.bound を独自に実装していることを覚えておいてください。これは、bound() は下限が上限未満であるかをチェックし、そうなっていない場合は例外を投げるためです。ロケールを意識したインデックスでは、比較の意味はロケールによって異なり、たとえばリトアニア語では Y は I と K の間に並びます。IDBKeyRangeIDBLocaleAwareKeyRange の唯一の違いは、後者はこのチェックを行わないことです。

開発者は、ロケールを意識したインデックスを扱う際は、常に IDBLocaleAwareKeyRange を用いるべきです。

js

function displayData() {
  const keyRangeValue = IDBLocaleAwareKeyRange.bound("A", "F");

  const transaction = db.transaction(["fThings"], "readonly");
  const objectStore = transaction.objectStore("fThings");

  const myIndex = objectStore.index("lName");
  myIndex.openCursor(keyRangeValue).onsuccess = (event) => {
    const cursor = event.target.result;
    if (cursor) {
      const tableRow = document.createElement("tr");
      tableRow.innerHTML =
        `<td>${cursor.value.id}</td>` +
        `<td>${cursor.value.lName}</td>` +
        `<td>${cursor.value.fName}</td>` +
        `<td>${cursor.value.jTitle}</td>` +
        `<td>${cursor.value.company}</td>` +
        `<td>${cursor.value.eMail}</td>` +
        `<td>${cursor.value.phone}</td>` +
        `<td>${cursor.value.age}</td>`;
      tableEntry.appendChild(tableRow);

      cursor.continue();
    } else {
      console.log("全エントリーを表示しました。");
    }
  };
}

仕様書

現在、どの仕様書にも入っていません。

ブラウザーの互換性

BCD tables only load in the browser

関連情報