IDBFactory
インターフェイスのopen()
データベースへの接続を要求します。
このメソッドは即座にIDBOpenDBRequest
オブジェクトを返し, そして非同期でデータベースを開きます。 操作が成功した場合, このメソッドから返されるrequestオブジェクトにresultの属性として接続のための新しい
IDBDatabase
オブジェクトが設定されて、sucessイベントが発生します。
データベースとの接続の間にエラーが発生した場合、このメソッドで返されるrequestオブジェクトで、errorイベントが発生します。
構文
現在の標準:
var request = window.indexedDB.open("toDoList", 4);
オプション付の実験バージョン (下を見てください):
var request = window.indexedDB.open("toDoList", {version: 4, storage: "temporary"});
戻り値
この要求に関連のある連続したイベントが発生するIDBOpenDBRequest
オブジェクト。
例外
このメソッドは 次の型のようなDOMErrorを持つDOMException
が発生するかもしれません。
例外 | 説明 |
---|---|
TypeError |
バージョンの値がゼロかマイナスの値、または数値でない場合。 |
例
次のコードスニペットは、 データベースを開く要求をして、成功の場合と失敗の場合のイベントハンドラを登録しています。 完璧に動作する例は、 To-do Notifications app (view example live.)を見てください。
var note = document.querySelector("ul"); // In the following line, you should include the prefixes of implementations you want to test. window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; // DON'T use "var indexedDB = ..." if you're not in a function. // Moreover, you may need references to some window.IDB* objects: window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction; window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange; // (Mozilla has never prefixed these objects, so we don't need window.mozIDB*) // Let us open version 4 of our database var DBOpenRequest = window.indexedDB.open("toDoList", 4); // these two event handlers act on the database being opened successfully, or not DBOpenRequest.onerror = function(event) { note.innerHTML += '<li>Error loading database.</li>'; }; DBOpenRequest.onsuccess = function(event) { note.innerHTML += '<li>Database initialised.</li>'; // store the result of opening the database in the db variable. This is used a lot later on, for opening transactions and suchlike. db = request.result; };
パラメーター
- name
- データベース名。
- version
- データベースのバージョン。
- options (version and storage) 非標準
-
Geckoのversion 26から,
IDBFactory.open
のパラメーターとして、データベースのバージョンに加えて、IndexedDBのための永続的な(既定値)ストレージ、または一時的なストレージ(shared pool)のいづれかを指定する非標準のoptions
オブジェクトを含めることができます。
Note: Data in temporary storage persists until the global limit for the pool is reached. The global limit calculation is relatively complex, but we are considering changing it (see バグ 968272). When the global limit is reached, then data for the least recently used origin is deleted. There's also a group limit (eTLD+1 group/domain) which is currently 20% of the global limit. All requests that would exceed the group limit are just rejected.
仕様
Specification | Status | Comment |
---|---|---|
Indexed Database API The definition of 'open()' in that specification. |
勧告候補 |
ブラウザ実装状況
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 23webkit 24 |
10 moz 16.0 (16.0) |
10, partial | 15 | 7.1 |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 4.4 | 22.0 (22.0) | 1.0.1 | 10 | 22 | 未サポート |
Chromeは新しい仕様を実装していますが、旧い仕様も実装したままになっているので注意してください。同じように、ベンダプレフィックスなしのindexedDBがあるにもかかわらず、プレフィックス付きのwebkitIndexedDBも実装しています。
関連情報
- Using IndexedDB
- Starting transactions:
IDBDatabase
- Using transactions:
IDBTransaction
- Setting a range of keys:
IDBKeyRange
- Retrieving and making changes to your data:
IDBObjectStore
- Using cursors:
IDBCursor
- Reference example: To-do Notifications (view example live.)