2016-05-17 3 views
1

私の勤務者がsw.jsであるとしましょう。同じサービスワーカー(sw.js)を使用してこのファイルをプリキャッシュまたはキャッシュすると、影響はありますか?例えばservice-worker.jsを同じサービスワーカーで処理する効果はありますか?

は、

toolbox.precache(['sw.js']); 
toolbox.router.get('/sw.js', toolbox.cacheOnly); 

と、

navigator.serviceWorker.register('sw.js'); 

sw-toolboxを使用して、このサービスのワーカーは、これまでに更新する必要があり、またはURLがある場合、ブラウザは、特別なことをフェッチチェックができるようになりますアクティブなServiceWorkerURLと完全に一致し、サービスワーカーの24時間の強制アップデートを尊重し、ネットワークにヒットしますか? https://www.w3.org/TR/service-workers/#service-worker-registration-updateから

答えて

1

アップデートは、()キャッシュを相談することなく、このスクリプトの更新バージョン用のサーバーをpingします。これは概念的には、UAが24時間ごとに1回最大の操作と同じ操作です。

また、https://www.w3.org/TR/service-workers/#update-algorithmから、ステップ4.8:

は、応答がキャッシュされたエントリが古い1日よりも大きい場合は、ネットワークがフェッチ強制的に、Rを使用してフェッチ実行の結果とします。

+0

キャッシュストアではなくHTTPキャッシュではありませんか?それとも両方/何かを意味するのでしょうか? –

+0

私が知る限り、それはあらゆる種類のキャッシュを意味します。 – Marco

0

いいえ。

は、サービスワーカーをまったく通過します。 ServiceWorker仕様によると

-

ポイント更新アルゴリズムで5.2からhttps://slightlyoff.github.io/ServiceWorker/spec/service_worker/#update-algorithm

Set要求のskip service worker flagとリクエストのredirect modeに "エラー"。 HTTP Fetch (Point 3) -

そして、フェッチは

  1. ドキュメントから出て行くすべての要求のためのまたは解除を設定するだけでなく、WebSocket connection (Point 2)
  2. ためを設定されていhttps://fetch.spec.whatwg.org/#skip-service-worker-flag
  3. このフラグはではなく、が公開されています。あなたの要求に使用できるものではありません。サービスワーカー更新の

、を設定し、それがサービスワーカーのライフサイクルイベントを経由しないこのフラグがある - フェッチ。クロスチェック、

toolbox.router.get('/sw.js', function(...args) { 
    // never called 
    console.log(...args); 
    return toolbox.cacheOnly(...args); 
}); 

は、サービス労働者を更新するため、この機能を取得することはありません、このSWコードを使用してページを更新してみてください。この関数は、文書からの

fetch('/sw.js') 

のときにのみ呼び出されます。

関連する問題