IDBCursor
インターフェースのcontinue()
メソッドは、
オプションのキーパラメータに一致する方向に沿って、カーソルを
次の位置に進めます。
キーを指定しない場合、カーソルはその方向に基づき、隣へ進みます。
註: This feature is available in Web Workers.
構文
cursor.continue(optionalKey);
パラメータ
- optionalKey
- カーソル位置の為のキー。
例外
このメソッドは次の内いずれかのDOMException
を発生させることがあります。
例外 | 解説 |
---|---|
TransactionInactiveError |
この IDBCursor's の処理はアクティブではありません。 |
DataError |
キーパラメータは次のいくつかの状態を持つかもしれません:
|
InvalidStateError |
カーソルは現状を繰り返しているか、最後を過ぎています。 |
実例
この単純で部分的な実例では、トランザクションを作り、 オブジェクトストアを取得した後、オブジェクトストア内の全ての反復処理するためカーソルを使用しています。 カーソルはキーに基づいてデータを選択するには必要ありません。その全てを捕らえることができます。 又、 それぞれのループ内での繰り返しで、カーソルオブジェクトを用い、cursor.value.foo
とすることで、現在のレコードからカーソルの下のデータを取得できることには注目です。 完全な例については、IDBCursor example (view example live.) を参照してください。
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.');
}
};
};
仕様
仕様 | 状態 |
注釈 |
---|---|---|
Indexed Database API continue() の定義 |
勧告 |
ブラウザの互換性
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
基本部分の対応 | 23webkit 24 |
10 moz 16.0 (16.0) |
10, partial | 15 | 7.1 |
workersで利用可能 |
(有) | 37.0 (37.0) | ? | (有) | ? |
機能 | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本部分の対応 | 4.4 | 22.0 (22.0) | 1.0.1 | 10 | 22 | 8 |
workersで利用可能 | (有) | 37.0 (37.0) | (有) | ? | (有) | ? |
参照
- Using IndexedDB
- トランザクションの開始:
IDBDatabase
- トランザクションを使う:
IDBTransaction
- キーの範囲設定:
IDBKeyRange
- データの取得と変更:
IDBObjectStore
- カーソルを使う:
IDBCursor
- リファレンス 実例: To-do Notifications (view example live.)