IDBFactory

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

メモ: この機能はウェブワーカー内で利用可能です。

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

インスタンスメソッド

IDBFactory.open()

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

IDBFactory.deleteDatabase()

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

IDBFactory.cmp()

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

IDBFactory.databases()

利用できるすべてのデータベースの配列(名前とバージョンを含む)で履行されるプロミスを返します。

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

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

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

DBOpenRequest.onsuccess = (event) => {
  console.info("データベースを初期化しました。");

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

仕様書

Specification
Indexed Database API 3.0
# factory-interface

ブラウザーの互換性

BCD tables only load in the browser

関連情報