Webアプリケーションの初期使用で〜2Kレコードをダウンロードし、オフラインで使用するためにIndexedDBに保存する必要があるシナリオがあります。私のテストでは、すべてのレコードがロードされてインデックスに登録されると、パフォーマンスはすぐに見えます。しかし、明らかにインデックス作成中であり、その間に応答しない期間があります。それは理解できますが、IndexedDBが "索引付け中"なのか、それとも何かを知る方法はありますか?私はIndexedDBのドキュメントで何かを見つけることができません。このようなことは、ユーザーがそれを認識している場合、より良いユーザーエクスペリエンスを提供します。IndexedDB - インデックス作成の検出
答えて
同期APIまたは非同期APIを使用していますか?非同期の場合は、おそらくブラウザをフリーズするべきではありません。たぶん、タイムアウトイベントを追加することができます。 100ミリ秒よりも長く実行されると、ブラウザがインデックス作成に忙しく働いている可能性があります。
実際には、インデックス作成を観察できるということは仕様にはありません。これは舞台裏で起こることを意図しており、完了したとき(例えば、既存データのキー制約エラーのためにトランザクションがコミットまたはアボートする場合)にのみ観察可能となるように意図されている。新しいインデックスが作成されているときに特定のブラウザが応答しなくなった場合は、ブラウザに対してバグを報告する必要があります。
少なくとも、createIndex()コールは「インスタント」である必要があり、オブジェクトストア内の値を移動してインデックスエントリを計算することによって、インデックスは非同期的に読み込まれます。これはcreateIndex()呼び出しが行われた同じプロセスとスレッドで発生し、同じスレッド上の他のアクティビティと競合します(たとえば、適切な作業を優先順位付けしないと、アニメーションが遅くなることがあります)。
ここに同じ問題があります。クロムのみを使用します。他のブラウザについては考えられません。
私がインデックスを作成するまでは問題ありませんでした。クロールするのが遅くなります。開発者ツール - >アプリケーションタブでindexeddbをクリアすると簡単に繰り返します。ページを更新します。
私の側では、私はいくつかの "約束"ロジックを追加する必要があります。そこでは、各店舗の作成/「インデックス」の作成/各店舗へのデータの初期追加をそれぞれの約束ロジックに分解する。私はwww.promisesjs.comが読む価値があるかもしれないと言いたい。
私はさまざまなパッケージスクリプトから離れようとしています。それらのうちのいくつかは、 "bulkadd"と "bulkadd"機能を使用した場合のパフォーマンス向上のステートメントを単に "追加"したものがあります。 pouchdb、localforge、db.js、dexie.js、backbone?、bookshelf?心に浮かぶいくつかのパッケージ化されたスクリプトです。 BEFORE WARNED:パッケージ化されたスクリプトの中には、ロジックのような独自の約束があります。組み込みの約束ロジックを使用したり使用したりしないと問題が発生する可能性があります。
メモ:他のデータベースのSQLは突然大きなヒットでデータを追加またはダンプするため、indexeddbは変わりません。より良いフレーズの不足のために最初の "インストールラグ"を過ぎると、すべてが円滑に動くはずです。あなたのアプリ自体はCPU集約的です。今私はそれについて考えて、データベースのようなほとんどのsqlは、データのダンプ/エクスポートやインポートには、タイムアウトスクリプトが組み込まれています。大規模なデータベーステーブルで時間がかかることが原因です。
- 1. indexedDBの作成とオブジェクトストアの作成
- 2. IndexedDBファジー検索
- 3. ElasticSearchでのインデックス作成後の検索
- 4. PDFコンテンツのインデックス作成と検索
- 5. 弾性検索のインデックス作成ウェブサイト/ URL
- 6. PHPによる検索のインデックス作成
- 7. IndexedDBキーとソートの検索
- 8. インデックスの作成
- 9. イテレータのインデックス作成
- 10. インデックスを作成
- 11. インデックス作成
- 12. mysqlの部分インデックス作成、逆インデックス作成
- 13. 特定の行でのみフルテキスト検索のインデックスを作成
- 14. IndexedDB内の既存のオブジェクトストアへのインデックスの追加
- 15. DiscordPYエラー、トラブル検出コマンドの作成者
- 16. Lucene.NETのDatetimeフィールドのインデックス作成および検索方法は?
- 17. Azure検索でのインデックスの作成/設定ARMテンプレート
- 18. Azure検索BLOBのインデックス作成の代替手段
- 19. HTML5 indexedDBからMAX(日付)を検索
- 20. indexedDBのfindとfindOne
- 21. Googleカスタム検索でダイナミックページのインデックスを作成しない
- 22. 部分文字列検索のインデックスを作成しますか?
- 23. 数分ごとに検索エンジンのインデックスを再作成する
- 24. Node.jsのインデックス作成/検索エンジンはありますか?
- 25. 弾性検索ドキュメントソート、インデックス作成の問題
- 26. DynamicObjectsを使用したAzure検索インデックスの作成
- 27. 弾性検索でmongoose-timestampのインデックスを作成する方法
- 28. DLTKインデックス作成中
- 29. indexeddb複合キーを作成するには
- 30. TYPO3インデックス検索提出時のURL
お返事ありがとうございます。私は非同期です。ブラウザをフリーズしているわけではなく、特定の呼び出しがインデックス作成が完了するのを待っているように見えます。 size()関数が動作して正しいカウントを返すので、すべてのレコードはDBにあります。私はタイムアウトイベントを調べてあなたの投稿を続けます。 –