IDBObjectStore: name プロパティ
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
IDBObjectStore
インターフェイスの name
プロパティは、このオブジェクトストアの名前を表します。
メモ: この機能はウェブワーカー内で利用可能です。
値
このオブジェクトストアの名前を表す文字列です。
例外
オブジェクトストアの名前を変更しようとすると、以下の例外が発生する可能性があります。
InvalidStateError
DOMException
-
オブジェクトストアが削除済か、現在のトランザクションがアップグレードトランザクションでないとき投げられます。インデックスの名前の変更はアップグレードトランザクション (
versionchange
モード) でのみ可能です。 TransactionInactiveError
DOMException
-
現在のトランザクションが実行中でないとき投げられます。
ConstraintError
DOMException
-
オブジェクトストアで既に指定された
name
が使用中のとき投げられます。
例
以下のコード断片では、データベースの読み書きトランザクションを開き、add()
を用いてデータをオブジェクトストアに追加します。オブジェクトストアの生成後、コンソールに objectStore.name
を記録します。動く例全体は、To-do Notifications アプリケーションを参照してください。(動く例を見る)
js
// データベースを開く
const DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = (event) => {
note.innerHTML += "<li>データベースを初期化しました。</li>";
// データベースを開いた結果を変数 db に格納する
// これは後でよく使う
db = DBOpenRequest.result;
// addData() 関数を実行し、データをデータベースに追加する
addData();
};
function addData() {
// IDB に挿入できる新しいオブジェクトを生成する
const newItem = [
{
taskTitle: "Walk dog",
hours: 19,
minutes: 30,
day: 24,
month: "December",
year: 2013,
notified: "no",
},
];
// 読み書きトランザクションを開き、データを追加する準備をする
const transaction = db.transaction(["toDoList"], "readwrite");
// すべて完了し、トランザクションが正常終了したら報告する
transaction.oncomplete = (event) => {
note.innerHTML += "<li>トランザクションが完了しました。</li>";
};
transaction.onerror = (event) => {
note.innerHTML +=
"<li>トランザクションはエラーのため開けませんでした。アイテムは重複させられません。</li>";
};
// トランザクション上でオブジェクトストアを生成する
const objectStore = transaction.objectStore("toDoList");
console.log(objectStore.name);
// オブジェクトストアに newItem オブジェクトを追加する要求を行う
const objectStoreRequest = objectStore.add(newItem[0]);
objectStoreRequest.onsuccess = (event) => {
// 要求の成功を報告する
note.innerHTML += "<li>要求に成功しました。</li>";
};
}
仕様書
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbobjectstore-name① |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase
- トランザクションの使用:
IDBTransaction
- キー範囲の設定:
IDBKeyRange
- データの取得と変更:
IDBObjectStore
- カーソルの使用:
IDBCursor
- リファレンス例: To-do Notifications (動く例を見る)