IDBFactory.open()
open() は IDBFactory インターフェイスのメソッドで、データベースへの接続を開くことを要求します。
このメソッドは即座に IDBOpenDBRequest オブジェクトを返し、そして非同期でデータベースを開きます。
操作が成功した場合、このメソッドから返される request オブジェクトに result の属性として接続のための新しい IDBDatabase オブジェクトが設定されて、success イベントが発生します。
upgradeneeded, blocked, versionchange イベントが発生することがあります。
注: この機能は Web Worker 内で利用可能です
構文
js
open(name)
open(name, version)
引数
name-
データベースの名前。
version省略可-
省略可。データベースを開くバージョン。バージョンが提供されずにデータベースが存在した場合、データベースへの接続はバージョンを変更せずに開かれます。 バージョンが提供されず、データベースも存在しなかった場合、バージョン番号
1が生成されます。
返値
この要求に関連のある連続したイベントが発生する IDBOpenDBRequest オブジェクト。
操作に成功した場合、リクエストの result プロパティの値は、データベースへの接続を表す IDBDatabase オブジェクトとなります。
例外
TypeError-
versionの値がゼロかマイナスの値、または数値でない場合。
例
open を現在の仕様書の version 引数を付けて呼び出す例です。
js
const request = window.indexedDB.open("toDoList", 4);
次のコードスニペットは、データベースを開く要求をして、成功の場合と失敗の場合のイベントハンドラを登録しています。完璧に動作する例は、To-do Notifications アプリケーション (動く例を見る) を見てください。
js
const note = document.querySelector("ul");
// データベースのバージョン 4 を開きましょう。
const DBOpenRequest = window.indexedDB.open("toDoList", 4);
// これら 2 個のイベントハンドラーは、データベースが正常に開かれたか、
// 失敗した時に動作します。
DBOpenRequest.onerror = (event) => {
note.innerHTML += "<li>データベースの読み込みに失敗しました。</li>";
};
DBOpenRequest.onsuccess = (event) => {
note.innerHTML += "<li>データベースを初期化しました。</li>";
// データベースを開いた結果を変数 db に保存します。
// これはトランザクションを開くときなど、
// 後でたくさん使います。
db = DBOpenRequest.result;
};
仕様書
| Specification |
|---|
| Indexed Database API 3.0 # ref-for-dom-idbfactory-open② |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- IndexedDB の使用
- ブラウザーのストレージ制限と削除基準
- トランザクションの開始 :
IDBDatabase - トランザクションの使用 :
IDBTransaction - キーの範囲の設定 :
IDBKeyRange - データの取得と変更 :
IDBObjectStore - カーソルの使用 :
IDBCursor - リファレンス例 : To-do Notifications (動く例を見る)