3

Angular / C# アプリをオフラインで利用できるようにするための解決策を見つけることについて、いくつかの詳細に苦労しています。
私の考えは、upup.jsを使用して、オフラインで利用できる Angular の SPA のビジネス ロジックを取得することです。upup.js は Service Worker を使用してこれを行います。場合によっては、 IndexedDB を使用し、WebSQL と localStorage にフォールバックするangular-localForageを使用して、オフライン アプリに必要なデータを保存します。
問題は、ユーザーが使用されているページにアクセスする必要なく、ファイルと画像をオフラインでも利用できるようにする必要があり、最大クォータが心配なことです。upup.js を使用してそれらのファイルをアセットとして追加するか、angular-localForage を使用してブロブとして保存することができます。私が正しく知らされていれば、IndexedDBは今では無制限になっているはずですか? ただし、upup.js ソリューションが使用するサービス ワーカーの最大クォータは見つかりませんでした。AppCache は廃止されたので、私はそれを使用しません... または、完全に間違っていることを理解したのでしょうか、それとも別のより良い解決策がありますか? とにかく、質問は次のとおりです。

TL ; DR : AngularJS オフライン アプリケーションのファイルを保存するより良い方法は何ですか? または、さらに良い解決策はありますか?

4

1 に答える 1

2

私の意見では、Service Worker (SW) は従来のローカル ストレージより優れています。Plus SW は indexedDB も使用できます。

実装については、非常に依存しています。アプリの構造、Angular アプリで使用するフロントエンドのテクノロジ、SW を使用する主な目的は何ですか?


1. 従来の JS ロードでは、すべての JS ファイルを 1 つにマージする可能性がありapp.jsます。

また、プッシュ通知や SW が提供するその他のクールな機能も気にしません。

=> この場合、upup.jsあなたに一番合っているようです。

: upup.jsSW を単独で登録しようとすると、SW の拡張機能に関する作業がブロックされたり複雑になったりする可能性があることに注意してください。


2. 高度な AMD ユーザー。ほぼすべての JS が細かく切り刻まれています... fooCtrl.jsbarCtrl.jsなど...

確かに、JS の 100 以上のファイルのように構成したくないし、さらに多くの html テンプレートをロードする必要があります。

=> この場合、 を使用することをお勧めしますsw-toolbox。Google が作成した非常に強力で軽量なツールです。SW の概念にまだ慣れていない場合、最初はサイトのセットアップに少し苦労するでしょう (ただし、高度な JS 開発者であれば 1 日以内で済みます)。

すべてが構成された後、すべてが非常にシンプルになります。たとえば、これは私のサイトのすべての静的コンテンツをキャッシュする方法です。

self.toolbox.router.get(/(.js|.css|.png|.jpg|.json|.html)/, self.toolbox.fastest);

3. フロントエンド側の技術は問いません。SWに興味があるだけです。

=>sw-toolbox基本的な構成の時間を大幅に節約できます。そして、SWの使い方を広げたいなら、自分の意思で広げればいい。

于 2016-05-13T10:35:48.833 に答える