2017-10-18 1 views
0

PWAの更新中にネットワークが切断され、キャッシュがリフレッシュされないとします。アプリケーションを残している状態は何ですか?リフレッシュすると、一部のアプリケーションファイルは更新されますが、他のファイルは更新されません。接続が戻ったら、もう一度試しますか?どのくらいの頻度で?何回ですか?ネットワークがサービスワーカーキャッシュの更新に失敗した場合は、PWAをブリックしますか?

答えて

0

サービスワーカーの実装方法によって異なります。

一般的なモデルで、私がお勧めするものは、installイベント中にキャッシュに追加して処理し、activateイベント中にキャッシュから削除することです。

installイベントでキャッシュの追加がevent.waitUntil()の中にラップされていて、そのうちの1つが(ネットワーク障害またはその他の問題のため)例外をスローすると、新しい(または更新された)サービスワーカー失敗と見なされます。以前のバージョンのサービスワーカーは、使用されていれば引き続き使用されます。次にサービスワーカーのスコープの下にあるページへのナビゲーションがあるときには、新しいサービスワーカーに対して新鮮なinstallイベントが発生し、キャッシュの追加を実行する別のチャンスが与えられます。

あなただけactivateイベントでキャッシュをクリーンアップする場合は、installプロセスが成功した場合を除きactivateイベントが発生しませんので、インストールが失敗したときに、以前にキャッシュされたエントリが削除される心配する必要はありません。 (あなたのサービスワーカーは、他のタブがあるかどうかに応じて、解雇されinstall間とactivatewaiting状態で終わるかもしれないサービスワーカーの古いバージョンを使用して開いて、かどうか、あなたはself.skipWaiting()を呼ぶ。)

ありますさらに多くの情報、サンプルコード、および図表をhttps://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#updates

関連する問題