Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

IDBFactory.open

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も実装しています。

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: fscholz, YuichiNukiyama
 最終更新者: YuichiNukiyama,