Skip to content

Latest commit

 

History

History
95 lines (67 loc) · 4.11 KB

File metadata and controls

95 lines (67 loc) · 4.11 KB
title short-title slug l10n
IDBFactory: open() メソッド
open()
Web/API/IDBFactory/open
sourceCommit
ff1e97da7ade9fcb05fb3de064011d4f05debe82

{{APIRef("IndexedDB")}} {{AvailableInWorkers}}

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

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

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

構文

open(name)
open(name, version)

引数

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

返値

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

操作に成功した場合、リクエストの {{domxref("IDBRequest.result", "result")}} プロパティの値は、データベースへの接続を表す {{domxref("IDBDatabase")}} オブジェクトとなります。

例外

  • {{jsxref("TypeError")}}
    • : version の値がゼロかマイナスの値、または数値でない場合。

open を現在の仕様書の version 引数を付けて呼び出す例です。

const request = window.indexedDB.open("toDoList", 4);

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

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

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

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

DBOpenRequest.onsuccess = (event) => {
  note.appendChild(document.createElement("li")).textContent =
    "データベースを初期化しました。";

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

仕様書

{{Specifications}}

ブラウザーの互換性

{{Compat}}

関連情報