IDBCursor: source プロパティ
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
メモ: この機能はウェブワーカー内で利用可能です。
source は IDBCursor インターフェイスの読み取り専用プロパティで、カーソルが反復している対象の IDBObjectStore または IDBIndex を返します。この関数は、カーソルが反復中であっても、最後まで反復した後であっても、トランザクションが実行中でなくても、null を返したり例外を投げたりすることはありません。
値
カーソルが反復している対象の IDBObjectStore または IDBIndex です。
例
このシンプルな断片では、トランザクションを作成し、オブジェクトストアを取得し、カーソルを使用してオブジェクトストア内の全レコードを走査します。それぞれの繰り返しにおいて、カーソルの反復元を記録します。これにより、IDBObjectStore オブジェクトがコンソールに記録されます。
カーソルを使う場合、データをキーで選択する必要はなく、単に全部取得できます。また、ループ中のそれぞれの繰り返しにおいて、カーソルオブジェクトが指している現在のレコードからデータを cursor.value.foo のようにして取得できます。動く例全体は、IDBCursor example を参照してください。(動く例を見る)
js
function displayData() {
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");
objectStore.openCursor().onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
list.appendChild(listItem);
console.log(cursor.source);
cursor.continue();
} else {
console.log("全エントリーを表示しました。");
}
};
}
仕様書
| 仕様書 |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbcursor-source①> |
ブラウザーの互換性
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase - トランザクションの使用:
IDBTransaction - キーの範囲の設定:
IDBKeyRange - データの取得と変更:
IDBObjectStore - カーソルの使用:
IDBCursor - 参考例: To-do Notifications (動く例を見る)