問題タブ [service-worker-events]

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.

0 投票する
1 に答える
1123 参照

service-worker - Service Worker がフェッチ イベントを発生させない

下の画像でわかるように、Service Worker は両方ともアクティブであり、フェッチしているファイルは Service Worker のスコープ内にありますが、fetch イベントはまだ発生していません。

コンソール & <code>sw.js</code> ソース Service Worker がフェッチをインターセプトするために必要な条件は他にありますか?

0 投票する
0 に答える
258 参照

caching - Service Worker の「インストール」イベントが、ブラウザーのキャッシュに既に存在するはずのファイルを再度ダウンロードする

Service Worker を追加して app-shell をキャッシュする前に、Web ページに関連するファイル (main.css、app.js、shims.js など) に対する発信要求がブラウザーによってキャッシュされていました。これにより、これらのファイルに対するそれ以降のリクエストは、タイムスタンプ付きのリクエストを含む、キャッシュされたバージョンを返しました (また、max-age が期限切れになった場合、これらのリクエストは Etag で検証されます)。(この動作は、ページの通常の訪問中も同じです。)

ここで、Web ページ (PWA) が初めてコンテンツを要求します。コンテンツが受信された後、サービス ワーカーのインストール イベントは、バックグラウンドで指定されたファイルのフェッチを開始します。

それらの一部はブラウザー キャッシュ (ディスク/メモリ キャッシュ) から取得されますが、一部は再度ダウンロードされます (de.json、en.json、app.js、shims.js、main.css)。attacehd イメージを参照してください。これらすべての URI には、リクエストが Web ページから実行されたときのタイムスタンプが含まれていますが、その後のリクエストではブラウザのキャッシュから返されます。

Service Worker の「インストール」イベントでこれらのファイルを取得すると、なぜこれが異なるのですか?

PWA の初回ロード時のネットワーク リクエスト - Service Worker はキャッシュに何も置かずにインストールします

ところで、私は全体的なネットワーク リクエストを減らそうとしているので、これらのファイルを再度ダウンロードするのはあまり良いことではありません..

0 投票する
6 に答える
34014 参照

javascript - Firefox: Service Worker: SecurityError: DOMException: The Operation is insecure

ではapp.js、ナビゲーター オブジェクトで serviceWorker の存在を確認し、利用可能な場合は SW を登録しています。

SW を登録しようとすると、Firefox で次のエラーが表示されます。service-worker.jsまた、ファイルがsrcディレクトリの下にあることも確認しました。

ここに画像の説明を入力

Firefox (バージョン 59.0.2) でabout:configを確認すると、サービス ワーカーとストレージ API が有効になっていました。だから、それは問題ではないはずです。

ここに画像の説明を入力ここに画像の説明を入力

PS: Chrome でも同じコードで問題なく動作します。