IDBCursor.continue()
continue()
は IDBCursor
インターフェースのメソッドで、カーソルを現在の方向に次の位置、任意のキーパラメーターに一致するキーを持つアイテムまで進めます。キーを指定しない場合、カーソルはその方向に基づいて、すぐ隣の位置へ進みます。
注: この機能は Web Worker 内で利用可能です
構文
cursor.continue(key);
引数
key
省略可- カーソルを進めるためのキーです。
例外
このメソッドは次の内いずれかの DOMException
を発生させることがあります。
例外 | 解説 |
---|---|
TransactionInactiveError |
この IDBCursor のトランザクションがアクティブではありません。 |
DataError |
キーパラメーターが以下の状態のうちのいずれかである可能性があります。
|
InvalidStateError |
カーソルが現在走査中または末尾を越えて走査しました。 |
例
この単純で部分的な実例ではトランザクションを作り、オブジェクトストアを取得した後、オブジェクトストア内の全ての反復処理するためカーソルを使用しています。カーソルはキーに基づいてデータを選択するには必要ありません。その全てを捕らえることができます。また、それぞれのループ内での繰り返しでカーソルオブジェクトを用い、 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.'); } }; };
仕様書
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- Using IndexedDB
- トランザクションの開始:
IDBDatabase
- トランザクションを使う:
IDBTransaction
- キーの範囲設定:
IDBKeyRange
(en-US) - データの取得と変更:
IDBObjectStore
(en-US) - カーソルを使う:
IDBCursor
- リファレンス 実例: To-do Notifications (view example live.)