2016-02-04 7 views

答えて

13

サービスワーカーキャッシュAPIの主な利点は、それがあなたに組み込みのブラウザのキャッシュよりもより詳細な制御を与えることです。たとえば、サービスワーカーは、ユーザーが最初にWebアプリケーションを実行したときに、まだアクセスしていないアセットを含めて、複数のリクエストをキャッシュすることができます。これにより、後続のリクエストが高速化されます。また、独自のキャッシュ制御ロジックを実装して、重要であると考えられるアセットがキャッシュに保持されるようにして、使用されていないデータを削除することもできます。

+4

これに関連する1つのコメント。キャッシュヘッダーを使用してページ上の要素をキャッシュする場合、ユーザーがトリガーすると、ブラウザーはHTTPキャッシュをスキップします。 SWフェッチイベントは常に要求をインターセプトし、必要に応じていつでもキャッシュから提供することができます。 –

+0

@ GauntFace確かに、開いているタブの明示的な「リフレッシュ」だけではありません。ページがヘッダーでキャッシュされ、デバイスがオフラインの場合、新しいタブでページを読み込むような暗黙的な「リフレッシュ」は失敗します。 –

0

主な違いはコントロールです。ブラウザのキャッシュはCache-Controlヘッダーから取り除かれます。ネットワークでアドレス可能なリソースをキャッシュする方法を管理するためのあらゆる種類の戦略があります。プライベート、パブリック;あなたはこれらの資産が永続化されている方法をプログラムで制御することができますサービスワーカーのキャッシングでなど、

を生きるための時間。しかし、それはあなたに負担があることを意味します。

ブラウザのキャッシュは、私が信頼できないと考えるものです。ブラウザは、デバイスのストレージ可用性に基づいてアセットを自動的にパージします。たとえば、iPhoneは25kbを超えるリソースのキャッシュを無視していました。今日私は彼らがちょうど非常に積極的だと思う。

私はFacebookのチームが数年前に研究を行なったし、彼らは、ブラウザがキャッシュされたヘッダーに基づいてキャッシュするために期待されるファイルの25%だけを発見した知っています。これは、余分なネットワークトラフィックとサーバーアクティビティがあることを意味しました。サービスワーカーキャッシングがより良い選択である理由

です。キャッシュヘッダーを削除しないでください。ちょうどそれらに傾けないでください。

関連する問題