From 87a91f47dfef661302e655dcbbdd76ed937a74dd Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Wed, 18 Aug 2021 12:53:33 +0900 Subject: Web/API/IndexedDB_API を更新 (#2003) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 2021/08/09 時点の英語版に同期 - 「期限の確認」については新規翻訳 --- files/ja/web/api/indexeddb_api/index.html | 139 ++++++++++++++---------------- 1 file changed, 67 insertions(+), 72 deletions(-) (limited to 'files/ja/web/api/indexeddb_api/index.html') diff --git a/files/ja/web/api/indexeddb_api/index.html b/files/ja/web/api/indexeddb_api/index.html index 14369351fa..1d08f26cc8 100644 --- a/files/ja/web/api/indexeddb_api/index.html +++ b/files/ja/web/api/indexeddb_api/index.html @@ -13,54 +13,54 @@ translation_of: Web/API/IndexedDB_API ---
{{DefaultAPISidebar("IndexedDB")}}
-

IndexedDB は、ファイルや blob を含む構造化された多くのデータを保存する、クライアントサイドのローレベル API です。この API は高パフォーマンスなデータの検索を行うために、インデックスを使用します。Web Storage は比較的少量のデータを保存するのに有用ではありますが、構造化された非常に多くのデータを扱うには不十分です。IndexedDB が解決策を提供します。本ページは、MDN における IndexedDB のランディングページです。ここでは API リファレンスへのリンク、使用ガイド、ブラウザーのサポート状況、主要なコンセプトの説明を掲載します。

+

IndexedDB は、ファイルや blob を含む大量の構造化データをクライアント側で保存するための低レベル API です。この API はインデックスを使用して、高パフォーマンスなデータの検索を行うことができます。Web Storage は比較的少量のデータを保存するのに有用ではありますが、構造化された非常に多くのデータを扱うには不十分です。IndexedDB が解決策を提供します。ここでは、完全な API リファレンスと使用ガイド、ブラウザーの対応の詳細、および重要な概念の説明へのリンクを提供します。

{{AvailableInWorkers}}

-

メモ: IndexedDB API は強力ですが、シンプルな用途にとってはとても複雑に見えるかもしれません。シンプルな API が好ましいのでしたら、IndexedDB をより開発者フレンドリーに扱える localForagedexie.jsZangoDBPouchDBJsStore などのライブラリを検討してください。

+

メモ: IndexedDB API は強力ですが、シンプルな用途にはとても複雑に見えるかもしれません。シンプルな API が好ましいのであれば、関連情報の節にある IndexedDB をプログラマーにとって扱いやすくするライブラリーを試してみてください。

-

主要概念と使用法

+

主要概念と使用法

-

IndexedDB は SQL ベースの RDBMS に似たトランザクショナルデータベースシステムですが、SQL ベース の RDBMS が固定された列を持つテーブルを使用するのに対して、IndexedDB は JavaScript ベースのオブジェクト指向データベースです。IndexedDB では、キーでインデックス付けされたオブジェクトを保存および取り出すことができます。Structured Clone アルゴリズムがサポートする、任意のオブジェクトを保存できます。データベースのスキーマを定義する、データベースへの接続を確立する、そして一連のトランザクションでデータの取り出しや更新を行うことが必要です。

+

IndexedDB は SQL ベースの RDBMS に似たトランザクショナルデータベースシステムです。しかし、SQL ベース の RDBMS が固定された列を持つテーブルを使用するのに対して、IndexedDB は JavaScript ベースのオブジェクト指向データベースです。IndexedDB では、キーでインデックス付けされたオブジェクトを保存および取り出すことができます。構造化クローンアルゴリズムに対応した、任意のオブジェクトを保存することができます。データベースのスキーマを定義し、データベースへの接続を確立し、そして一連のトランザクションでデータの取り出しや更新を行う必要があります。

-

メモ: たいていのウェブストレージ技術と同様に、IndexedDB も同一オリジンポリシーに従います。よって、保存済みデータは同一ドメイン内からアクセスできますが、異なるドメインにまたがってデータへアクセスすることはできません。

+

メモ: たいていのウェブストレージ技術と同様に、IndexedDB も同一オリジンポリシーに従います。よって、保存済みデータは同一ドメイン内からアクセスできますが、異なるドメインにまたがってデータへアクセスすることはできません。

-

同期と非同期

+

同期と非同期

-

IndexedDB を扱う操作は非同期に実行しますので、他のアプリケーションを妨げません。 IndexedDB は元々同期 API と非同期 API の両方を提供していました。同期 API は Web Worker 内でのみの使用を意図していましたが、必要性に疑問があったため仕様から削除されました。ただし、同期 API はウェブ開発者から十分な要望がある場合は、将来再び導入される可能性があります。

+

IndexedDB を扱う操作は非同期に実行しますので、他のアプリケーションを妨げません。 IndexedDB は元々同期 API と非同期 API の両方を提供していました。同期 API はウェブワーカー内でのみの使用を意図していましたが、必要性に疑問があったため仕様から削除されました。ただし、同期 API はウェブ開発者から十分な要望がある場合は、将来再び導入される可能性があります。

-

ストレージの上限と破棄基準

+

ストレージの上限と破棄基準

-

クライアントサイド (すなわちローカルディスク) に何らかのデータを保存するウェブ技術がいくつかあり、IndexedDB はそのような技術としてもっともよく語られます。ブラウザーがどれだけの容量をウェブデータストレージに割り当てるかや、容量の上限に達したときにどのデータを削除するかのプロセスは単純ではなく、またブラウザーにより異なります。Browser storage limits and eviction criteria で、少なくとも Firefox ではどのようにしているかを説明しようとしています。

+

クライアント側 (すなわちローカルディスク) に何らかのデータを保存するウェブ技術はいくつかあります。IndexedDB はそのような技術としてもっともよく語られます。ブラウザーがどれだけの容量をウェブデータストレージに割り当てるかや、容量の上限に達したときにどのデータを削除するかのプロセスは単純ではなく、またブラウザーにより異なります。ブラウザーのストレージ制限と削除基準で、少なくとも Firefox ではどのようにしているかの解説を試みています。

-

インターフェイス

+

インターフェイス

-

データベースへのアクセスを行いたい場合は、window オブジェクトの indexedDB 属性上の open() を呼び出してください。このメソッドは {{domxref("IDBRequest")}} オブジェクトを返します。{{domxref("IDBRequest")}} オブジェクト上で発火したイベントによってアプリケーションが呼び出されることにより、非同期操作が行われます。

+

データベースへのアクセスを行いたい場合は、window オブジェクトの indexedDB 属性上で open() を呼び出してください。このメソッドは {{domxref("IDBRequest")}} オブジェクトを返します。{{domxref("IDBRequest")}} オブジェクト上で発行されたイベントによってアプリケーションが呼び出されることにより、非同期操作が行われます。

-

データベースへの接続

+

データベースへの接続

{{domxref("IDBEnvironment")}}
IndexedDB 機能へのアクセスを提供します。{{domxref("window")}} および {{domxref("worker")}} オブジェクトによって実装されています。このインターフェイスは 2.0 仕様の一部ではありません。
{{domxref("IDBFactory")}}
-
データベースへのアクセスを提供します。indexedDB グローバルオブジェクトによって実装されており、従って API へのエントリーポイントになります。
+
データベースへのアクセスを提供します。{{domxref("WindowOrWorkerGlobalScope/indexedDB", "indexedDB")}} グローバルオブジェクトによって実装されており、従って API へのエントリーポイントになります。
{{domxref("IDBOpenDBRequest")}}
データベースを開くリクエストを表します。
{{domxref("IDBDatabase")}}
データベース接続を表します。データベースとのトランザクション処理を行うためのみに使用されます。
-

データの取り出しと変更

+

データの取り出しと変更

{{domxref("IDBTransaction")}}
@@ -72,88 +72,83 @@ translation_of: Web/API/IndexedDB_API
{{domxref("IDBIndex")}}
こちらも IndexedDB データベース内のデータのサブセットにアクセスできますが、レコードの探索に主キーではなくインデックスを使用します。{{domxref("IDBObjectStore")}} より高速に動作する場合があります。
{{domxref("IDBCursor")}}
-
オブジェクトストアとインデックスをイテレートします。
+
オブジェクトストアとインデックスを反復処理します。
{{domxref("IDBCursorWithValue")}}
-
オブジェクトストアとインデックスをイテレートして、カーソルの現在の値を返します。
+
オブジェクトストアとインデックスを反復処理して、カーソルの現在の値を返します。
{{domxref("IDBKeyRange")}}
データベースから一定の範囲のデータを取り出すために使用可能な、キーの範囲を定義します。
{{domxref("IDBLocaleAwareKeyRange")}} {{Non-standard_inline}}
-
データベースから一定の範囲のデータを取り出すために使用可能な、インデックス用に指定したロケール (createIndex() の optionalParameters をご覧ください) の規則によって並べ替えたキーの範囲を定義します。
+
データベースから一定の範囲のデータを取り出すために使用可能な、インデックス用に指定したロケール (createIndex() の optionalParameters をご覧ください) の規則によって並べ替えたキーの範囲を定義します。
-

カスタムイベントインターフェイス

+

カスタムイベントインターフェイス

-

本仕様では、以下のカスタムインターフェイスでイベントが発生します:

+

本仕様では、以下のカスタムインターフェイスでイベントが発生します。

{{domxref("IDBVersionChangeEvent")}}
-
IDBVersionChangeEvent インターフェイスは、{{domxref("IDBOpenDBRequest.onupgradeneeded")}} イベントハンドラ関数によってデータベースのバージョンが変更されたことを表します。
+
IDBVersionChangeEvent インターフェイスは、{{domxref("IDBOpenDBRequest.onupgradeneeded")}} イベントハンドラー関数によってデータベースのバージョンが変更されたことを表します。
-

廃止インターフェイス

+

廃止インターフェイス

-

仕様の早期段階で定義されていたインターフェイスの一部が、現在、削除されています。以前書いたコードを最新の仕様に合わせて更新する際に必要になるであろうことから、削除されたインターフェイスに関するドキュメントは残してあります:

+

仕様の早期段階では、以下のようなインターフェイスを定義していましたが、既に削除されています。以前書かれたコードを更新する必要がある場合のために、ドキュメントを残しています。

-
{{domxref("IDBVersionChangeRequest")}} {{obsolete_inline}}
-
データベースのバージョンの変更リクエストを表現します。データベースのバージョンを変更する方法が ({{domxref("IDBDatabase.setVersion")}} ではなく {{domxref("IDBFactory.open")}} を呼び出すように) 変わりました。また削除された {{domxref("IDBVersionChangeRequest")}} に代わり {{domxref("IDBOpenDBRequest")}} インターフェイスが用意されています。
-
{{domxref("IDBDatabaseException")}}  {{obsolete_inline}}
+
{{domxref("IDBDatabaseException")}}  {{deprecated_inline}}
データベース操作が実行されている間に発生した例外状況を表します。
-
{{domxref("IDBTransactionSync")}} {{obsolete_inline}}
-
同期型の {{domxref("IDBTransaction")}} です。
-
{{domxref("IDBObjectStoreSync")}} {{obsolete_inline}}
-
同期型の {{domxref("IDBObjectStore")}} です。
-
{{domxref("IDBIndexSync")}} {{obsolete_inline}}
-
同期型の {{domxref("IDBIndex")}} です。
-
{{domxref("IDBFactorySync")}} {{obsolete_inline}}
-
同期型の {{domxref("IDBFactory")}} です。
-
{{domxref("IDBEnvironmentSync")}} {{obsolete_inline}}
-
同期型の {{domxref("IDBEnvironment")}} です。
-
{{domxref("IDBDatabaseSync")}} {{obsolete_inline}}
-
同期型の {{domxref("IDBDatabase")}} です。
-
{{domxref("IDBCursorSync")}} {{obsolete_inline}}
-
同期型の {{domxref("IDBCursor")}} です。
+
{{domxref("IDBTransactionSync")}} {{deprecated_inline}}
+
同期版の {{domxref("IDBTransaction")}} です。
+
{{domxref("IDBObjectStoreSync")}} {{deprecated_inline}}
+
同期版の {{domxref("IDBObjectStore")}} です。
+
{{domxref("IDBIndexSync")}} {{deprecated_inline}}
+
同期版の {{domxref("IDBIndex")}} です。
+
{{domxref("IDBFactorySync")}} {{deprecated_inline}}
+
同期版の {{domxref("IDBFactory")}} です。
+
{{domxref("IDBEnvironmentSync")}} {{deprecated_inline}}
+
同期版の {{domxref("IDBEnvironment")}} です。
+
{{domxref("IDBDatabaseSync")}} {{deprecated_inline}}
+
同期版の {{domxref("IDBDatabase")}} です。
+
{{domxref("IDBCursorSync")}} {{deprecated_inline}}
+
同期版の {{domxref("IDBCursor")}} です。
-

+

-

仕様書

+

仕様書

- - - - - - - - - - - - - - - - - - - + + + + + + + + + +
仕様書状態備考
{{SpecName("IndexedDB 2")}}{{Spec2("IndexedDB 2")}} 
{{SpecName('IndexedDB')}}{{Spec2('IndexedDB')}}初回定義
仕様書
Indexed Database API
-

関連情報

+

関連情報

-- cgit v1.2.3-54-g00ecf