--- title: IDBFactory.open slug: Web/API/IDBFactory/open tags: - Database - IDBFactory - Storage - open translation_of: Web/API/IDBFactory/open ---
{{domxref("IDBFactory")}} インターフェイスの open()
メソッドは、データベースへの接続を開くことを要求します。
このメソッドは即座に {{domxref("IDBOpenDBRequest")}} オブジェクトを返し、そして非同期でデータベースを開きます。操作が成功した場合、このメソッドから返される request オブジェクトに result の属性として接続のための新しい {{domxref("IDBDatabase")}} オブジェクトが設定されて、 success イベントが発生します。
データベースとの接続の間にエラーが発生した場合、このメソッドで返される request オブジェクトで、 error イベントが発生します。
upgradeneeded
, blocked
, versionchange
イベントが発生することもあります。
{{AvailableInWorkers}}
現在の標準では:
var IDBOpenDBRequest = indexedDB.open(name); var IDBOpenDBRequest = indexedDB.open(name, version);
1
が生成されます。options
オブジェクトを {{ domxref("IDBFactory.open") }} の引数として指定することができ、データベースの version
番号と、加えてストレージに persistent
(永続的) または temporary
(一時的) のどちらを使用したいかを指定する storage 値を指定することができます。
storage
属性は非推奨であり、まもなく Gecko から削除される予定です。永続的なストレージを得るには、代わりに {{domxref("StorageManager.persist()")}} を使用してください。メモ: 利用可能な様々なストレージ種別における詳細情報や、 Firefox がクライアント側データストレージを扱う方法については、 ブラウザーのストレージ制限と削除基準で見つけることができます。
この要求に関連のある連続したイベントが発生する {{domxref("IDBOpenDBRequest")}} オブジェクト。
このメソッドは、次の型のような DOMError を持つ {{domxref("DOMException")}} が発生する可能性があります。
例外 | 説明 |
---|---|
TypeError |
バージョンの値がゼロかマイナスの値、または数値でない場合。 |
open
を現在の仕様書の version
引数を付けて呼び出す例です。
var request = window.indexedDB.open("toDoList", 4);
次のコードスニペットは、データベースを開く要求をして、成功の場合と失敗の場合のイベントハンドラを登録しています。完璧に動作する例は、 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 = DBOpenRequest.result; };
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('IndexedDB', '#widl-IDBFactory-open-IDBOpenDBRequest-DOMString-name-unsigned-long-long-version', 'open()')}} | {{Spec2('IndexedDB')}} | |
{{SpecName("IndexedDB 2", "#dom-idbfactory-open", "open()")}} | {{Spec2("IndexedDB 2")}} |
{{Compat("api.IDBFactory.open")}}