IDBObjectStore: clear() メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
IDBObjectStore インターフェイスの clear() メソッドは、IDBRequest を生成してすぐに返します。そして、別スレッドでオブジェクトストアをクリアします。これは、オブジェクトストア内のデータをすべて削除する操作です。
オブジェクトストアのクリアは、オブジェクトストアからレコードをすべて削除し、このオブジェクトストアを参照するインデックスの全レコードを削除する操作です。オブジェクトストア内の一部のレコードのみを削除するには、IDBObjectStore.delete にキーまたは IDBKeyRange を渡してください。
メモ: この機能はウェブワーカー内で利用可能です。
構文
js
clear()
引数
なし
返値
この操作に関係する今後のイベントが発火する IDBRequest オブジェクトです。
操作に成功した場合は、この要求の result プロパティの値は undefined になります。
例外
ReadOnlyErrorDOMException-
この操作に対応するトランザクションが読み取り専用モードのとき投げられます。
TransactionInactiveErrorDOMException-
この
IDBObjectStoreのトランザクションが実行中でないとき投げられます。
例
以下のコード断片では、データベースの読み書きトランザクションを開き、clear() を用いてオブジェクトストア内の全データを消去します。動く例全体は、To-do Notifications アプリケーションを参照してください。(動く例を見る)
js
// データベースを開く
const DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = (event) => {
note.innerHTML += "<li>データベースを初期化しました。</li>";
// データベースを開いた結果を変数 db に格納する
// これは後でよく使う
db = DBOpenRequest.result;
// オブジェクトストアから全データを消去する
clearData();
};
function clearData() {
// 読み書きトランザクションを開き、データを消去する準備をする
const transaction = db.transaction(["toDoList"], "readwrite");
// すべて完了したとき、トランザクションの正常終了を報告する
transaction.oncomplete = (event) => {
note.innerHTML += "<li>トランザクションが完了しました。</li>";
};
transaction.onerror = (event) => {
note.innerHTML += `<li>トランザクションはエラーのため開けませんでした: ${transaction.error}</li>`;
};
// トランザクションでオブジェクトストアを生成する
const objectStore = transaction.objectStore("toDoList");
// オブジェクトストアから全データを消去する要求をする
const objectStoreRequest = objectStore.clear();
objectStoreRequest.onsuccess = (event) => {
// 要求の成功を報告する
note.innerHTML += "<li>要求に成功しました。</li>";
};
}
仕様書
| 仕様書 |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbobjectstore-clear③> |
ブラウザーの互換性
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase - トランザクションの使用:
IDBTransaction - キー範囲の設定:
IDBKeyRange - データの取得と変更:
IDBObjectStore - カーソルの使用:
IDBCursor - リファレンス例: To-do Notifications (動く例を見る)