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