IDBFactory

IndexedDB APIIDBFactory インターフェイスは、indexedDB への非同期アクセスを提供します。 このインターフェイスを実装するオブジェクトは、window.indexedDB です。このオブジェクトを使用すれば、IDBFactory インターフェイスに直接アクセスせずに、IndexedDB を開いたり (生成したり接続したり)、削除したりできます。

注: この機能は Web Worker 内で利用可能です

インスタンスメソッド

IDBFactory.open

データベースへの接続を開く要求をする現在のメソッドです。

IDBFactory.deleteDatabase

データベースの削除を要求するメソッドです。

IDBFactory.cmp

2 つのキーを比較して、大きいほうの値を戻り値として返すメソッドです。

IDBFactory.databases (en-US)

利用可能な全てのデータベースのリストを、名前とバージョンを含めて返すメソッドです。

次のコードスニペットでは、データベースを開く要求をし、成功の場合と失敗の場合のイベントハンドラーを登録しています。完全に動作する例は、To-do Notifications アプリケーション (動く例を見る) を見てください。

var note = document.querySelector("ul");

// 次の行では、テストしたい実装の接頭辞を含めるべきです。
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
// 関数外では "var indexedDB = ..." を使ってはいけません。
// さらに、window.IDB* オブジェクトのうちいくつかへの参照も必要かもしれません。
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
// (Mozilla はこれらのオブジェクトに接頭辞をつけたことはないので、window.mozIDB* は不要です)

// 我々のデータベースのバージョン 4 を開きましょう。
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// これら 2 個のイベントハンドラーは、データベースが正常に開かれたか、失敗した時に動作します。
DBOpenRequest.onerror = function(event) {
  note.innerHTML += '<li>データベースの読み込みに失敗しました。</li>';
};

DBOpenRequest.onsuccess = function(event) {
  note.innerHTML += '<li>データベースを初期化しました。</li>';

  // データベースを開いた結果を変数 db に保存します。これはトランザクションを開くときなど、後でたくさん使います。
  db = DBOpenRequest.result;
};

仕様書

Specification
Indexed Database API 3.0
# factory-interface

ブラウザーの互換性

BCD tables only load in the browser

関連情報