2017-10-24 10 views
0

多くのチュートリアルを読んだ後、私はself.skipWaiting()を使用して既存のserviceWorkerにすぐに更新を適用し、self.clients.claim()を使用して、最初の負荷ですぐに制御を開始するようにしました。サービスワーカーでself.clients.claim()とself.skipWaiting()を使用すると、読み込み時間が長くなることがありますか?

self.addEventListener('install', function(event) { 
    event.waitUntil(self.skipWaiting()); 
}); 
self.addEventListener('activate', function(event) { 
    event.waitUntil(self.clients.claim()); 
}); 

リクエストごとに更新を検索するのか、それとも内部的にどのように機能するのですか? self.clients.claim()self.skipWaiting()の使用は、負荷またはサービスワーカーのパフォーマンスに影響しますか?

答えて

0

パフォーマンス面での影響はありません。

self.skipWaiting()self.clients.claim()の両方が何らかのアクションをとりながら同時に、即時にundefined値で解決します。

self.skipWaiting()の場合は、内部フラグを反転してサービスワーカーをアクティブにしようとするだけです。 self.clients.claim()の場合、アクションはすべてのクライアントを通過し、現在実行中のサービスワーカーに制御権を与えることを試みます。

これらのメソッドの両方によって返される実際の約束事は無関係であり、event.waitUntil()にラップする必要はありません(傷つくことはありませんが、サービスワーカーの使用例の多くは引き続きそうしています)。

さらに、コードではinstallactivateリスナー内のメソッドを呼び出すだけなので、サービスワーカースレッドが起動した時間のほとんどは実行されません。ワーカー。

+0

ありがとうございます。 @ジェフ。 –

+0

このコードは、最初のページの更新時に更新を選択できますか? –

+0

SWのライフサイクルに関する詳細情報をお探しの場合は、https://developers.google.com/web/fundamentals/primers/service-workers/lifecycleを参考にしてください。 –

関連する問題