From 99e7bc2900085646fc800aa12e66d00c0fead2d9 Mon Sep 17 00:00:00 2001 From: Mahito TANNO Date: Sat, 26 Oct 2024 21:38:41 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Firefox=20=E3=83=97=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=83=90=E3=82=B7=E3=83=BC=E3=83=96=E3=83=A9=E3=82=A6=E3=82=B8?= =?UTF-8?q?=E3=83=B3=E3=82=B0=E3=81=AB=E9=96=A2=E3=81=99=E3=82=8B=E8=A8=98?= =?UTF-8?q?=E8=BC=89=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Firefox のプライベートブラウジングでも IndexedDB を利用できるようになっているため、 英語版の記載に合わせて該当箇所を削除。 - https://github.com/mdn/content/pull/28652 - https://bugzilla.mozilla.org/show_bug.cgi?id=1639542 --- files/ja/web/api/indexeddb_api/using_indexeddb/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/ja/web/api/indexeddb_api/using_indexeddb/index.md b/files/ja/web/api/indexeddb_api/using_indexeddb/index.md index cdcd53ed1e9eb7..65794539e7fe21 100644 --- a/files/ja/web/api/indexeddb_api/using_indexeddb/index.md +++ b/files/ja/web/api/indexeddb_api/using_indexeddb/index.md @@ -65,7 +65,7 @@ request.onsuccess = (event) => { IndexedDB API は必要なエラー処理を最小限にするよう設計されていますので、多くのエラーイベントを見ることはないでしょう (少なくとも、API に慣れていなければ)。しかしデータベースを開く場合は、エラーイベントが発生する一般的な状況があります。もっとも多いであろう問題は、データベースを作成する許可をユーザーがウェブアプリに与えなかったことです。IndexedDB の主要な設計目標のひとつが、オフラインで使用するために大量のデータを保存できるようにすることです。(各ブラウザーでどれだけの量のストレージを持てるかについては、[ストレージの制限](/ja/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria#ストレージの制限)をご覧ください) -広告ネットワークやコンピューターを汚染させる悪意のあるウェブサイトをブラウザーが許可したくないことは明らかですので、ブラウザーは ウェブアプリが初めてストレージ用に IndexedDB を開こうとしたときに、ユーザーへプロンプトを表示します。ユーザーはアクセスを許可または拒否できます。またブラウザーのプライバシーモードでの IndexedDB ストレージは、匿名のセッションを閉じるまでの間だけメモリー上に存在します (Firefox のプライベートブラウジングモードや Chrome のシークレットモードのことですが、2021 年 5 月現在の Firefox ではこれが[未実装です](https://bugzilla.mozilla.org/show_bug.cgi?id=781982)ので、Firefox のプライベートブラウジングでは IndexedDB をまったく使用できません)。 +広告ネットワークやコンピューターを汚染させる悪意のあるウェブサイトをブラウザーが許可したくないことは明らかですので、ブラウザーは ウェブアプリが初めてストレージ用に IndexedDB を開こうとしたときに、ユーザーへプロンプトを表示します。ユーザーはアクセスを許可または拒否できます。またブラウザーのプライバシーモードでの IndexedDB ストレージは、匿名のセッションを閉じるまでの間だけメモリー上に存在します。 ユーザーがデータベース作成の要求を許可して、成功コールバックを実行する成功イベントを受け取ったと想定します。次は何を行うのでしょうか? 以下のリクエストは `indexedDB.open()` の呼び出しを伴って生成されており、`request.result` は `IDBDatabase` のインスタンスですので、以降のためにこれを保存したいことは確実です。よって、コードは以下のようになるでしょう。 From 67a22a9d7f64ee90a22b8e67240e8e4b950bdca2 Mon Sep 17 00:00:00 2001 From: Mahito TANNO Date: Sat, 26 Oct 2024 22:36:14 +0900 Subject: [PATCH 2/3] =?UTF-8?q?2024/08/20=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E4=B8=80=E9=83=A8=E3=82=92=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TODO: mdn/content#31996 の取り込み --- .../api/indexeddb_api/using_indexeddb/index.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/files/ja/web/api/indexeddb_api/using_indexeddb/index.md b/files/ja/web/api/indexeddb_api/using_indexeddb/index.md index 65794539e7fe21..fc62b62d11dd5e 100644 --- a/files/ja/web/api/indexeddb_api/using_indexeddb/index.md +++ b/files/ja/web/api/indexeddb_api/using_indexeddb/index.md @@ -54,7 +54,7 @@ open メソッドの第 2 引数は、データベースのバージョンです ```js request.onerror = (event) => { - // request.errorCode に対して行うこと! + // request.error に対して行うこと! }; request.onsuccess = (event) => { // request.result に対して行うこと! @@ -63,7 +63,7 @@ request.onsuccess = (event) => { 2 つの関数 `onsuccess()` と `onerror()` のどちらが呼び出されるのでしょう? すべてが成功すると成功イベント (すなわち `type` プロパティが `"success"` である DOM イベント) が、`request` を `target` として発生します。イベントが発生すると `request` の `onsuccess()` 関数が、success イベントを引数として呼び出されます。一方、何らかの問題がある場合はエラーイベント (すなわち `type` プロパティが `"error"` である DOM イベント) が `request` で発生します。これは、エラーイベントを引数として `onerror()` 関数を呼び出します。 -IndexedDB API は必要なエラー処理を最小限にするよう設計されていますので、多くのエラーイベントを見ることはないでしょう (少なくとも、API に慣れていなければ)。しかしデータベースを開く場合は、エラーイベントが発生する一般的な状況があります。もっとも多いであろう問題は、データベースを作成する許可をユーザーがウェブアプリに与えなかったことです。IndexedDB の主要な設計目標のひとつが、オフラインで使用するために大量のデータを保存できるようにすることです。(各ブラウザーでどれだけの量のストレージを持てるかについては、[ストレージの制限](/ja/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria#ストレージの制限)をご覧ください) +IndexedDB API は必要なエラー処理を最小限にするよう設計されていますので、多くのエラーイベントを見ることはないでしょう (少なくとも、API に慣れていなければ)。しかしデータベースを開く場合は、エラーイベントが発生する一般的な状況があります。もっとも多いであろう問題は、データベースを作成する許可をユーザーがウェブアプリに与えなかったことです。IndexedDB の主要な設計目標のひとつが、オフラインで使用するために大量のデータを保存できるようにすることです。(各ブラウザーでどれだけの量のストレージを持てるかについては、[ブラウザのストレージ制限と削除基準ページ内のどれだけのデータが格納できるか](/ja/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria#どれだけのデータが格納できるか)をご覧ください) 広告ネットワークやコンピューターを汚染させる悪意のあるウェブサイトをブラウザーが許可したくないことは明らかですので、ブラウザーは ウェブアプリが初めてストレージ用に IndexedDB を開こうとしたときに、ユーザーへプロンプトを表示します。ユーザーはアクセスを許可または拒否できます。またブラウザーのプライバシーモードでの IndexedDB ストレージは、匿名のセッションを閉じるまでの間だけメモリー上に存在します。 @@ -90,7 +90,7 @@ request.onsuccess = (event) => { db.onerror = (event) => { // このデータベースのリクエストに対するすべてのエラー用の // 汎用エラーハンドラー! - console.error(`Database error: ${event.target.errorCode}`); + console.error(`Database error: ${event.target.error?.message}`); }; ``` @@ -481,7 +481,7 @@ index.openCursor().onsuccess = (event) => { index.openKeyCursor().onsuccess = (event) => { const cursor = event.target.result; if (cursor) { - // cursor.key は "Bill" のような名前、cursor.value は SSN です。 + // cursor.key は "Bill" のような名前、cursor.primaryKey は SSN です。 // 保存されたオブジェクトの他の部分を直接取得する方法はありません。 console.log(`Name: ${cursor.key}, SSN: ${cursor.primaryKey}`); cursor.continue(); @@ -664,17 +664,17 @@ IndexedDB API を使用した完全な例があります。この例では、出 ### チュートリアルとガイド -- [Databinding UI Elements with IndexedDB (2012)](https://web.dev/indexeddb-uidatabinding/) -- [IndexedDB — The Store in Your Browser]() +- [Databinding UI Elements with IndexedDB (2012)](https://web.dev/articles/indexeddb-uidatabinding/) +- [IndexedDB — The Store in Your Browser]() ### ライブラリー - [localForage](https://localforage.github.io/localForage/): クライアント側のデータストレージ向けに、シンプルな name:value 形式の構文を提供するポリフィルです。バックグラウンドで IndexedDB を使用しますが、IndexedDB をに対応していないブラウザーでは Web SQL (非推奨)や localStorage にフォールバックします。 - [Dexie.js](https://dexie.org/): 優良でシンプルな構文により高速なコード開発を可能にする、IndexedDB のラッパーです。 - [JsStore](https://jsstore.net/): SQL 風の構文による IndexedDB のラッパーです。 -- [MiniMongo](https://github.com/mWater/minimongo): クライアント側のインメモリーの mongodb で localstorage と server sync over http を元にしたもの。MiniMongo は MeteorJS で使われています。 -- [PouchDB](https://pouchdb.com): クライアント側のブラウザー内の CouchDB 実装で IndexedDB を使っています。 +- [MiniMongo](https://github.com/mWater/minimongo): クライアント側のインメモリーの Mongodb で localstorage と server sync over http を元にしたもの。MiniMongo は MeteorJS で使われています。 +- [PouchDB](https://pouchdb.com/): クライアント側のブラウザー内の CouchDB 実装で IndexedDB を使っています。 - [IDB](https://github.com/jakearchibald/idb): IndexedDB API をほぼ反映した小さなライブラリーですが、使いやすさを大きく変える小さな改良が加えられています。 - [idb-keyval](https://www.npmjs.com/package/idb-keyval): IndexedDB で実装された超シンプルで小さな (\~600B) プロミスベースのキーバリューストア - [$mol_db](https://github.com/hyoo-ru/mam_mol/tree/master/db): 小さな (\~1.3kB) TypeScript のファサードで、プロミスベースの API と自動マイグレーションを備えています。 -- [RxDB](https://rxdb.info/) IndexedDB の上に使用することができる NoSQL クライアントサイドデータベースです。インデックス、圧縮、レプリケーションに対応して います。また、 IndexedDB にクロスタブ機能やオブザーバー機能を追加しています。 +- [RxDB](https://rxdb.info/): IndexedDB の上に使用することができる NoSQL クライアントサイドデータベースです。インデックス、圧縮、レプリケーションに対応して います。また、 IndexedDB にクロスタブ機能やオブザーバー機能を追加しています。 From d4272ea1603f7919bae7e5f319e164e012bdfe68 Mon Sep 17 00:00:00 2001 From: Mahito TANNO Date: Thu, 31 Oct 2024 22:26:46 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E9=95=B7=E9=9F=B3=E8=A8=98=E5=8F=B7?= =?UTF-8?q?=E3=82=92=E5=88=A9=E7=94=A8=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Masahiro FUJIMOTO --- files/ja/web/api/indexeddb_api/using_indexeddb/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/ja/web/api/indexeddb_api/using_indexeddb/index.md b/files/ja/web/api/indexeddb_api/using_indexeddb/index.md index fc62b62d11dd5e..c891c244b00760 100644 --- a/files/ja/web/api/indexeddb_api/using_indexeddb/index.md +++ b/files/ja/web/api/indexeddb_api/using_indexeddb/index.md @@ -63,7 +63,7 @@ request.onsuccess = (event) => { 2 つの関数 `onsuccess()` と `onerror()` のどちらが呼び出されるのでしょう? すべてが成功すると成功イベント (すなわち `type` プロパティが `"success"` である DOM イベント) が、`request` を `target` として発生します。イベントが発生すると `request` の `onsuccess()` 関数が、success イベントを引数として呼び出されます。一方、何らかの問題がある場合はエラーイベント (すなわち `type` プロパティが `"error"` である DOM イベント) が `request` で発生します。これは、エラーイベントを引数として `onerror()` 関数を呼び出します。 -IndexedDB API は必要なエラー処理を最小限にするよう設計されていますので、多くのエラーイベントを見ることはないでしょう (少なくとも、API に慣れていなければ)。しかしデータベースを開く場合は、エラーイベントが発生する一般的な状況があります。もっとも多いであろう問題は、データベースを作成する許可をユーザーがウェブアプリに与えなかったことです。IndexedDB の主要な設計目標のひとつが、オフラインで使用するために大量のデータを保存できるようにすることです。(各ブラウザーでどれだけの量のストレージを持てるかについては、[ブラウザのストレージ制限と削除基準ページ内のどれだけのデータが格納できるか](/ja/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria#どれだけのデータが格納できるか)をご覧ください) +IndexedDB API は必要なエラー処理を最小限にするよう設計されていますので、多くのエラーイベントを見ることはないでしょう (少なくとも、API に慣れていなければ)。しかしデータベースを開く場合は、エラーイベントが発生する一般的な状況があります。もっとも多いであろう問題は、データベースを作成する許可をユーザーがウェブアプリに与えなかったことです。IndexedDB の主要な設計目標のひとつが、オフラインで使用するために大量のデータを保存できるようにすることです。(各ブラウザーでどれだけの量のストレージを持てるかについては、[ブラウザーのストレージ制限と削除基準ページ内のどれだけのデータが格納できるか](/ja/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria#どれだけのデータが格納できるか)をご覧ください) 広告ネットワークやコンピューターを汚染させる悪意のあるウェブサイトをブラウザーが許可したくないことは明らかですので、ブラウザーは ウェブアプリが初めてストレージ用に IndexedDB を開こうとしたときに、ユーザーへプロンプトを表示します。ユーザーはアクセスを許可または拒否できます。またブラウザーのプライバシーモードでの IndexedDB ストレージは、匿名のセッションを閉じるまでの間だけメモリー上に存在します。