IDBFactory.open

IDBFactory インターフェイスの open() メソッドは、データベースへの接続を開くことを要求します。

このメソッドは即座に IDBOpenDBRequest オブジェクトを返し、そして非同期でデータベースを開きます。操作が成功した場合、このメソッドから返される request オブジェクトに result の属性として接続のための新しい IDBDatabase オブジェクトが設定されて、 success イベントが発生します。

データベースとの接続の間にエラーが発生した場合、このメソッドで返される request オブジェクトで、 error イベントが発生します。

upgradeneeded, blocked, versionchange イベントが発生することもあります。

註: この機能は Web Workers 内で利用可能です。

構文

現在の標準では:

var IDBOpenDBRequest = indexedDB.open(name);
var IDBOpenDBRequest = indexedDB.open(name, version);

引数

name
データベースの名前。
version Optional
省略可。データベースを開くバージョン。バージョンが提供されずにデータベースが存在した場合、データベースへの接続はバージョンを変更せずに開かれます。バージョンが提供されず、データベースも存在しなかった場合、バージョン番号 1 が生成されます。

実験的な Gecko の options オブジェクト

options (version および storage) Optional
Gecko では、バージョン 26 から、標準外の options オブジェクトを IDBFactory.open の引数として指定することができ、データベースの version 番号と、加えてストレージに persistent (永続的) または temporary (一時的) のどちらを使用したいかを指定する storage 値を指定することができます。
警告: storage 属性は非推奨であり、まもなく Gecko から削除される予定です。永続的なストレージを得るには、代わりに StorageManager.persist() を使用してください。

メモ: 利用可能な様々なストレージ種別における詳細情報や、 Firefox がクライアント側データストレージを扱う方法については、 ブラウザーのストレージ制限と削除基準で見つけることができます。

返値

この要求に関連のある連続したイベントが発生する IDBOpenDBRequest オブジェクト。

例外

このメソッドは、次の型のような DOMError を持つ 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;
};

仕様書

仕様書 状態 備考
Indexed Database API 2.0
open() の定義
勧告  
Indexed Database API Draft
open() の定義
勧告  

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
openChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 あり
完全対応 あり
未対応 ? — ?
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 25Firefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
実装ノートを参照してください。
実装ノートを参照してください。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

関連情報