IDBLocaleAwareKeyRange

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

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

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

インスタンスメソッド

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

インスタンスプロパティ

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

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

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

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

関連情報