DOM

インターフェイス

IDBCursor インターフェイス

  編集:2022.04.06 by T.A.

MS(en-US)

注: IDBCursorWithValue と混同しないでください。IDBCursorWithValue は、追加の値プロパティを持つ単なる IDBCursor インターフェイスです。

IndexedDB API の IDBCursor インターフェイスは、データベース内の複数のレコードをトラバースまたは反復するためのカーソルを表します。

カーソルには、反復しているインデックスまたはオブジェクト ストアを示すソースがあります。範囲内の位置にあり、レコード キーの順に増減する方向に移動します。カーソルを使用すると、アプリケーションはカーソルの範囲内のすべてのレコードを非同期的に処理できます。

同時に無制限の数のカーソルを持つことができます。特定のカーソルを表す同じ ID カーソル オブジェクトを常に取得します。操作は、基になるインデックスまたはオブジェクト ストアで実行されます。

注: この機能は Web Workers で使用できます

プロパティ

注: IDBCursorWithValue は、追加の value プロパティを持つ IDBCursor インターフェイスです。

IDBCursor.source 読取専用
カーソルが反復している IDBObjectStore または IDBIndex を返します。この関数は null を返したり、例外をスローしたりすることはありません。カーソルが現在繰り返されている場合でも、終了を超えて反復したか、トランザクションがアクティブではありません。
IDBCursor.direction 読取専用
カーソルの移動方向を返します。可能な値については、定数を参照してください。
IDBCursor.key 読取専用
カーソル位置にあるレコードのキーを返します。カーソルが範囲外の場合、これは未定義に設定されています。カーソルのキーは任意のデータ型にすることができます。
IDBCursor.primaryKey 読取専用
カーソルの現在の有効な主キーを返します。カーソルが現在繰り返されているか、範囲外で繰り返されている場合は、これは未定義に設定されています。カーソルの主キーは、任意のデータ型にすることができます。
IDBCursor.request 読取専用
カーソルの取得に使用された IDBRequest を返します。
メソッド
IDBCursor.advance()
カーソルがその位置を前方に移動する回数を設定します。
IDBCursor.continue()
カーソルをその方向に沿って次の位置に進めます。キーがオプションのキー パラメータと一致するアイテムに。
IDBCursor.continuePrimaryKey()
指定されたインデックス キーと引数として指定された主キーにカーソルを設定します。
IDBCursor.delete()
IDBRequest オブジェクトを返し、別のスレッドで、カーソル位置のレコードを削除し、カーソルの位置を変更せずに。これは、特定のレコードを削除するために使用できます。
IDBCursor.update()
IDBRequest オブジェクトを返し、別のスレッドで、オブジェクト ストア内のカーソルの現在の位置の値を更新します。これは、特定のレコードを更新するために使用できます。
定数

非推奨: この機能は推奨されなくなりました。一部のブラウザはまだそれをサポートしているかもしれませんが、関連するWeb標準からすでに削除されている可能性があります。ドロップの過程にあるか、互換性の目的でのみ保持される可能性があります。使用を避け、可能であれば既存のコードを更新してください。このページの下部にある互換性の表を参照して、決定を下してください。この機能はいつでも機能しなくなる可能性があることに注意してください。

警告: これらの定数は使用できなくなりました ― Gecko 25 で削除されました。代わりに、文字列定数を直接使用する必要があります。(バグ891944

NEXT: "next"
カーソルにすべてのレコードが表示され、重複を含む。キー範囲の下限から始まり、上に移動します(キーの順序で単調に増加します)。
NEXTUNIQUE: "nextunique"
カーソルにすべてのレコードが表示され、重複を除く。同じキーを持つ複数のレコードが存在する場合、繰り返された最初のものだけが取得されます。キー範囲の下限から始まり、上に移動します。
PREV: "prev"
カーソルにすべてのレコードが表示され、重複を含む。キー範囲の上限から始まり、下に移動します(キーの順序で単調に減少します)。
PREVUNIQUE: "prevunique"
カーソルにすべてのレコードが表示され、重複を除く。同じキーを持つ複数のレコードが存在する場合、繰り返された最初のものだけが取得されます。キー範囲の上限から始まり、下に移動します。
この単純なフラグメントでは、トランザクションを作成し、オブジェクト ストアを取得してから、カーソルを使用してオブジェクト ストア内のすべてのレコードを反復処理します。カーソルは、キーに基づいてデータを選択する必要はありません。すべてをつかむことができます。また、ループの各反復で、cursor.value.foo を使用して、カーソル オブジェクトの下の現在のレコードからデータを取得できます。完全に機能する例については、IDBCursor の例 を参照してください(例をライブで表示します)。
function displayData() {
  var transaction = db.transaction(['rushAlbumList'], "readonly");
  var objectStore = transaction.objectStore('rushAlbumList');

  objectStore.openCursor().onsuccess = function(event) {
    var cursor = event.target.result;
    if(cursor) {
      var listItem = document.createElement('li');
      listItem.innerHTML = cursor.value.albumTitle + ', ' + cursor.value.year;
      list.appendChild(listItem);

      cursor.continue();
    } else {
      console.log('Entries all displayed.');
    }
  };
}

テスト
HTML:

ここに表示
スクリプト組み込み:



スクリプト:


スクリプト:



表示内容:
表示内容: