問題タブ [indexeddb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
948 参照

php - Use jquery to cache images in indexeddb for offline use

I have an image-heavy web page that needs to be viewable offline on mobile devices.

I found a jquery plugin/tutorial do store images in local storage, but that won't work for my purposes.

Is this something that can easily be adapted to use indexeddb instead?

Also, my images will be updated periodically. Is there a way I can automatically clear the cached versions after a certain amount of time, and force the user to re-load from the web?

0 投票する
2 に答える
3280 参照

javascript - IndexedDB: 値が「含む」クエリ インデックス

答えは「そんなことはできない」だと思いますが、確認したかったのです。オブジェクトがあるとしましょう:

phoneNumbers にインデックスを作成したい:

後で、特定の phoneNumber を持つ人を照会したいと思います。

それで結果が出るの?そうでない場合、これを行う別の方法はありますか?

0 投票する
3 に答える
2600 参照

javascript - 複数のJavaScriptスレッドからIndexedDBにアクセスする

概要: WebページとWebワーカーの両方からIndexedDBにアクセスすることで、競合状態を回避しようとしています。

セットアップ: ユーザーがサイトで作業しているときにローカルのIndexedDBにアイテムを保存しているWebページ。ユーザーがローカルDBにデータを保存するたびに、レコードは「未送信」としてマークされます。

IndexedDBからデータをプルしてサーバーに送信し、サーバーがデータを受信すると、IndexedDB内のデータを「送信済み」としてマークするWebワーカーのバックグラウンドスレッド。

問題: IndexedDBへのアクセスは非同期であるため、Webワーカーがレコードをサーバーに送信すると同時にユーザーがレコードを更新しないことを保証できません。タイムラインを以下に示します。

  1. Web-workerはDBからデータを取得し、それをサーバーに送信します
  2. 転送が行われている間、ユーザーはデータを更新してDBに保存します。
  3. Webワーカーはサーバーから応答を取得し、DBを「送信済み」に更新します
  4. サーバーに送信されていないが「送信済み」とマークされたデータがDBにあります

失敗した解決策: サーバーから応答を受け取った後、行を再確認して、何かが変更されているかどうかを確認できます。ただし、データをDBに書き込むことができる小さなウィンドウがまだ残っており、サーバーにデータが送信されることはありません。

例:サーバーがデータが保存されたと言った後、次のようにします。

その他の注意事項: W3仕様に準拠した同期APIがありますが、まだ誰も実装していないため、使用できません(http://www.w3.org/TR/IndexedDB/#sync-database)。同期APIは、私が想定するこの正確な状況を回避するために、Webワーカーが使用するように設計されています。

これについての考えは大歓迎です。約1週間取り組んできましたが、うまくいくものを思い付くことができませんでした。

0 投票する
1 に答える
1077 参照

javascript - Firefox 拡張機能で indexedDB を使用する

Firefox 拡張機能で indexedDB を使用してデータを保存することができません。また、indexedDB および Firefox 拡張機能に関する情報も見つかりません。

誰もこれに対処したことがありますか?

0 投票する
2 に答える
7816 参照

database - キー/値ストアの上にデータベース インデックスを構築するにはどうすればよいですか?

LevelDBについて読んでいて、次のことがわかりました。

Chrome ブラウザーの今後のバージョンには、LevelDB の上に構築された IndexedDB HTML5 API の実装が含まれています。

IndexedDBは、データをインデックス化する機能を持つ単純なキー/値ストアでもあります。

私の質問は、キー/値ストアの上にインデックスを構築するにはどうすればよいですか? インデックスがその最下位レベルにあることは n-ary ツリーであることを知っており、データベースでデータがインデックス付けされる方法を理解しています。しかし、LevelDB のようなキー/バリュー ストアを使用してデータベース インデックスを作成するにはどうすればよいでしょうか?

0 投票する
2 に答える
5020 参照

javascript - indexedDB に接続するときに onupgradeneeded コールバックが呼び出されないのはなぜですか?

IndexedDB を使用してローカルに保存されたデータを取得しようとしています。以下に、onupgradeneeded イベントを発生させようとする簡単な例を示します。

バージョン番号を変更しようとしましたが、upgradeneeded を試しても呼び出されません。なぜ何か提案はありますか?

乾杯ルカ

0 投票する
2 に答える
1914 参照

javascript - IndexedDB キーの UUID を生成していますか?

IndexedDB の W3C 仕様では、キー ジェネレーターを次のように定義しています。

キー ジェネレーターは、キーが必要になるたびに、単調に増加する数値 [原文のまま] を生成します。

現在、(私には)IndexedDB(または、さらに言えば、HTML5クライアント側ストレージオプションのいずれか:WebSQL、localStorageなど)の一般的な使用例は、オフラインで動作するように設計されたアプリです(HTML5と組み合わせて) ApplicationCache)。

このシナリオでは、切断されたWeb アプリケーションがそのローカル データ ストアに新しいオブジェクト/レコードを生成し、後でサーバーへの接続が利用可能になったときに集中型データベースに同期される可能性があります。

さらに、複数のクライアントが同じ中央データベースに同期するアプリケーションには、通常、ID の衝突を防ぐメカニズムが必要です。

UUID (または GUID) は、中央の調整なしで一意のキーを生成できるため、適切な選択です。対照的に、「単調に増加する数値」は貧弱な解決策です (各クライアントが他のユーザーと衝突する可能性が低い開始値で「シード」されていない限り)。

IndexedDB の仕様が、UUID ジェネレーターなどの代替キー ジェネレーターを指定していない (または将来のサポートを許可していない) ことは驚くべきことです。答えとしては、IndexedDB の組み込みキー ジェネレーターをまったく使用せず、代わりにアプリケーションで独自のキーを生成することを提案する人もいるかもしれません。

ただし、利用可能な Javascript ベースの UUID ジェネレーターはたくさんありますが、それらの多くはランダム性に関して既知の制限があるMath.random () に基づいているようです。保証します。

IndexedDB の実装者が提供するネイティブの UUID ジェネレーターは、(おそらく) アプリケーションによって実装/インポートされたスクリプトよりも堅牢で、より優れたパフォーマンスを発揮します。と思うでしょう。

ここで何かを見逃しているのでしょうか、それとも W3C IndexedDB ワーキング グループが機会を逃したのでしょうか?

0 投票する
2 に答える
777 参照

javascript - indexedDBへの画像データの保存

この質問に対する私の関心は、現時点ではほとんど理論的なものです。

メッシュの保存にすでに使用しているindexedDBなどを使用して、画像(webglテクスチャ用)をローカルに保存したいと思います。

これは可能ですか?もしそうなら、どのように?そしてそれは良い考えですか?

0 投票する
3 に答える
227 参照

javascript - イベントをトリガーするメソッド呼び出しの後にJavaScriptイベントハンドラーを設定しますか?

IndexedDB APIを調べていると、イベントをトリガーする必要があるように見えるメソッド呼び出しの後に設定されているイベントハンドラーの例がいくつか見つかりました。

私はJavaScriptでかなりの開発を行ってきましたが、これは私には奇妙に見えると言って恥ずかしい思いをします。実際のopen()呼び出しの前にイベントハンドラーを設定する必要があるように感じますが、いくつかの例でこのパターンを見てきました。誰かが私がこれを理解するのを手伝ってもらえますか?

0 投票する
3 に答える
1794 参照

javascript - HTML5 オフライン ストレージ / Web SQL

私は、モバイル デバイス上の Web フォームのオフライン ストレージ オプションを調査するように依頼されました (主に、膨大な数と場所への接続が常に問題と思われる大規模なイベントで使用するための iPad 上のサインアップ フォーム)。

私が思いつきたいのは、次のようなものです。

  • 接続されている場合はデータを送信でき、そうでない場合はオフラインの場合は保存できるフォーム。
  • 定期的に接続を確認し、可能な場合はフォーム データを送信してください。

ここで誰かが私を正しい方向に向けることができますか?

ありがとう、

クリス