問題タブ [localforage]
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.
json - Lawnchair または localForage を使用してデータをオフラインに維持する必要がありますか
Ionic フレームワークを使用してアプリを作成しています。クラウド内のデータストアとして mongodb を使用していますが、リストが包括的すぎてアプリの速度が低下しています。クライアント側のストレージについて何百万時間も読んだ後、私はまだ明確な答えを持っていません.
これらの包括的なjsonファイルをクライアントからネイティブに提供できることを望んでいました.ios + android + windows phoneですが、それを提供するための「サーバー」がなかったため、そのアイデアは不発に思えました。angularでの残りのAPIの私の限られた理解に問題があるかどうかはわかりませんが、論理的にはその考えは意味がありません。
ネイティブの sql clietn を見て、sqlite を調査しました。これらの異なるプラットフォーム (ios + android + windows phone) での sqlite の実装は面倒なので、さまざまな種類のブラウザー キャッシュを調べました。
詳しくは説明しませんが、私の構造では localstorage は単純すぎて、他のオプションはサポートされていないか、非推奨になっています。その混乱。ただし、私が見つけたオフライン データ ソリューションに関する 2 つのオプションは Lawnchair と localForage です。
クライアントに基づいて最も包括的なソリューションを提供するため、これら 2 つの違いは何ですか。より良い/より悪いオプションを提案してくれる人。
次に、アプリキャッシュを使用してキャッシュしたいサイトファイルがありますが、 https://www.npmjs.org/package/generator-ionicを使用しているため、方法がわかりません。仕方。
javascript - jQuery グローバル変数アクセスの混乱
私は非常に具体的な問題を抱えています.localforageライブラリを使用してデータを取得しようとしており、JSONであるグローバル変数に割り当てています.
私はこの問題で非常に混乱しています。必要な修正をお願いします
javascript - for ループ内の LocalForage からの JavaScript 連鎖プロミス
getItem
LocalForage ライブラリから複数のプロミスをチェーンしようとしています。キーは配列から読み取られます。
問題: すべての LocalForage promise が終了した後にトリガーする Resolve または Reject コールバックが必要です。
どちらのメソッドにも正しいコールスタックがありませんでした。何か案は?
コード 1:
コード代替:
html - ページの読み込み時にキャッシュと localForage (IndexedDB) をクリアした後、エラーが発生しました
DOMException: 'IDBDatabase' で 'transaction' を実行できませんでした: データベース接続を閉じています。
ページを更新すると、ページは完璧に機能します。これは、(キャッシュと IndexDB をクリアした後) ページを初めて読み込むときにのみ発生します。
IndexedDB はどのようにキャッシュに接続されていますか?
どんな助けにも感謝します!ありがとう
javascript - ページ レンダリングのためのクライアント側ストレージからのデータの処理
ページのレンダリングのためにクライアント側のストレージからデータを処理する最良の方法は何ですか? 状況を明確にするために、柔軟な抽象アーキテクチャを使用する予定です。バックエンドで変更でき、フロントエンド部分で変更が発生するはずです。
たとえば、フロントエンドでは、フォームの基本構造 (利用可能なサービス、属性など) を持つ深くネストされた JSON を取得します。それを単純な配列として解析し、この配列をページのレンダリングに使用します (さまざまな種類のサービスに適切なウィジェットを使用します)。将来のために一部のクライアントストレージに保存し、ユーザーが再びページにアクセスしたときに、以前にクライアントからキャッシュされたデータをページレンダリングに使用します (サーバーに新しいサービスが追加されていない場合)。私が使用する予定のテクノロジは、angularJS、localForage、および angular-localforage lib です。だから、私は次の質問があります:
- データを処理する最善の方法は何ですか- クライアント ストレージから (特定のページに関する) 配列全体を 1 回のトランザクションで取得し、それを Angular アプリに入れ、アプリからページ レンダリングに使用する予定です。それは適切で効果的ですか?それとも、サービスごとに小さなトランザクションで日付データを取得する必要がありますか? データをクライアント ストレージにキャッシュする場合と同じ質問です。
- 大きなトランザクションがある場合、他の処理が遅くなるリスクはありますか? または、このリスクはラッピングまたはストレージ アーキテクチャで中和されますか?
- ユーザーがストレージ タイプを変更した場合の移行に関する実際の情報を見つけることができませんでした。たとえば、localStorage から indexeddb に変更しました。問題は未解決なので、毎回ストレージのタイプを確認し、変更された場合はサーバーからデータを再キャッシュする必要があるようです。それが唯一の可能な方法ですか?
- 選択したアーキテクチャ/テクノロジーに問題/欠点はありますか? 何かを変更または追加するようにアドバイスできますか?
- localForage が提供する単純なキーと値の構造でデータを検索するには、何が適切ですか? たとえば、parent_id=42 の要素が必要な場合、アプリに必要なデータ全体を取得して整理し、アプリでクエリを実行する必要がありますか? または、いくつかのトリッキーなストレージ構造を行いますか? それとももっと良い方法がありますか?
javascript - IndexedDB、ページをリロードせずに更新されたデータを取得する方法は?
angular-localforage を使用しており、IndexedDB にいくつかのキーがあります。キーに新しい値を設定すると、ページをリロードして最新の値で表示されるため、以前の値で表示されます。
ページをリロードせずに更新されたデータを取得する解決策はありますか?
** 新しい項目を追加したり、setItem() と removeItem() を使用してテーマを削除したりする場合、開発者ツールのリソースの変更を確認するには、ページをリロードする必要があるため、コードのせいではないと思います。
** Mozilla Developerで言及されているように: IndexedDB にはもともと非同期 API と同期 API の両方が含まれていました。しかし、必要性が疑わしいため、同期バージョンは仕様から削除されました。ですから、私の質問には現時点で絶対的な答えはないと思います。ところで、リソース、記事、リンクは役に立ちます。:)