Service Worker を追加して app-shell をキャッシュする前に、Web ページに関連するファイル (main.css、app.js、shims.js など) に対する発信要求がブラウザーによってキャッシュされていました。これにより、これらのファイルに対するそれ以降のリクエストは、タイムスタンプ付きのリクエストを含む、キャッシュされたバージョンを返しました (また、max-age が期限切れになった場合、これらのリクエストは Etag で検証されます)。(この動作は、ページの通常の訪問中も同じです。)
ここで、Web ページ (PWA) が初めてコンテンツを要求します。コンテンツが受信された後、サービス ワーカーのインストール イベントは、バックグラウンドで指定されたファイルのフェッチを開始します。
var urlsToCache = [
"/",
"/css/main.css",
"/js/app.js",
"/js/shims.js",
"/assets/playstore.png",
"/assets/logo_amcs_small.png",
"/assets/appstore.png",
"/assets/i18n/en.json",
"/assets/i18n/de.json",
"/fonts/fontawesome-webfont.woff2?v=4.7.0"
];
それらの一部はブラウザー キャッシュ (ディスク/メモリ キャッシュ) から取得されますが、一部は再度ダウンロードされます (de.json、en.json、app.js、shims.js、main.css)。attacehd イメージを参照してください。これらすべての URI には、リクエストが Web ページから実行されたときのタイムスタンプが含まれていますが、その後のリクエストではブラウザのキャッシュから返されます。
Service Worker の「インストール」イベントでこれらのファイルを取得すると、なぜこれが異なるのですか?
ところで、私は全体的なネットワーク リクエストを減らそうとしているので、これらのファイルを再度ダウンロードするのはあまり良いことではありません..