私のプログレッシブウェブアプリケーションでは、静的アセットのサービスワーカーでキャッシュAPIを使用する必要がありますか、それともブラウザのネイティブキャッシュコントロールだけに依存する必要がありますか?違いは何ですか?Service Worker Cache APIと通常のブラウザキャッシュを使用する違いは何ですか?
答えて
サービスワーカーキャッシュAPIの主な利点は、それがあなたに組み込みのブラウザのキャッシュよりもより詳細な制御を与えることです。たとえば、サービスワーカーは、ユーザーが最初にWebアプリケーションを実行したときに、まだアクセスしていないアセットを含めて、複数のリクエストをキャッシュすることができます。これにより、後続のリクエストが高速化されます。また、独自のキャッシュ制御ロジックを実装して、重要であると考えられるアセットがキャッシュに保持されるようにして、使用されていないデータを削除することもできます。
主な違いはコントロールです。ブラウザのキャッシュはCache-Controlヘッダーから取り除かれます。ネットワークでアドレス可能なリソースをキャッシュする方法を管理するためのあらゆる種類の戦略があります。プライベート、パブリック;あなたはこれらの資産が永続化されている方法をプログラムで制御することができますサービスワーカーのキャッシングでなど、
を生きるための時間。しかし、それはあなたに負担があることを意味します。
ブラウザのキャッシュは、私が信頼できないと考えるものです。ブラウザは、デバイスのストレージ可用性に基づいてアセットを自動的にパージします。たとえば、iPhoneは25kbを超えるリソースのキャッシュを無視していました。今日私は彼らがちょうど非常に積極的だと思う。
私はFacebookのチームが数年前に研究を行なったし、彼らは、ブラウザがキャッシュされたヘッダーに基づいてキャッシュするために期待されるファイルの25%だけを発見した知っています。これは、余分なネットワークトラフィックとサーバーアクティビティがあることを意味しました。サービスワーカーキャッシングがより良い選択である理由
です。キャッシュヘッダーを削除しないでください。ちょうどそれらに傾けないでください。
- 1. PageMod/page-modとPage/page-workerの違いは何ですか?
- 2. Windowsサービスと通常のアプリケーションの違いは何ですか?
- 3. データフォームwebpartと通常のリストwebpartの違いは何ですか?
- 4. CILの通常オペコードとショートフォームオペコードの違いは何ですか?
- 5. cl_datatypeと通常のデータ型の違いは何ですか?
- 6. 通常と適応ローパスフィルタの違いは何ですか?
- 7. ソースフォルダと(通常)フォルダの違いは何ですか
- 8. スレッドエントリ関数と通常関数の違いは何ですか?
- 9. AndroidでThread.run()とHandler.post()とServiceの違いは何ですか?
- 10. HttpContextのCacheとItems Propertiesの違いは何ですか?
- 11. HttpCacheability.NoCacheとResponse.CacheControl = "no-cache"の違いは何ですか?
- 12. GatewayとService Activatorの違いは何ですか?
- 13. 通常の変数とRubyのインスタンス変数との違いは何ですか?
- 14. プロトタイプ関数とjavascriptの通常の関数との違いは何ですか?
- 15. View.VISIBLEと通常のintで使用されるintの違いは何ですか?
- 16. Procfileとは何ですか? WebとWorker
- 17. CLI-Loopとは何ですか?通常のループとの違いは何ですか?
- 18. PHP5.3で参照関数と通常関数の違いは何ですか?
- 19. 通常のWebサービスとSoapベースのWebサービスの違いは何ですか?
- 20. XMLHttpRequestと通常のHTTPリクエストのパケットレベルの違いは何ですか?
- 21. 埋め込みWebフォントと通常のTrueTypeデスクトップフォントの違いは何ですか?
- 22. objective-cの無名カテゴリと通常カテゴリの違いは何ですか?
- 23. 通常の関数呼び出しとpcallの違いは何ですか
- 24. Dalvikの通常のAndroid仮想マシンとGoogle API仮想マシンの違いは何ですか
- 25. 静的構造と通常構造の違いは何ですか?
- 26. インラインメンバー関数と通常メンバー関数の違いは何ですか?
- 27. オンネット通話とオフネット通話の違いは何ですか?
- 28. Terracotta-Hibernate-CacheとTerracottaで分散されたEhcacheの違いは何ですか?
- 29. Asp.Net Web APIとWCFサービスの違いは何ですか?
- 30. WindowsのGetDesktopWindow APIとOpenInputDesktop APIの違いは何ですか?
これに関連する1つのコメント。キャッシュヘッダーを使用してページ上の要素をキャッシュする場合、ユーザーがトリガーすると、ブラウザーはHTTPキャッシュをスキップします。 SWフェッチイベントは常に要求をインターセプトし、必要に応じていつでもキャッシュから提供することができます。 –
@ GauntFace確かに、開いているタブの明示的な「リフレッシュ」だけではありません。ページがヘッダーでキャッシュされ、デバイスがオフラインの場合、新しいタブでページを読み込むような暗黙的な「リフレッシュ」は失敗します。 –