PWAの更新中にネットワークが切断され、キャッシュがリフレッシュされないとします。アプリケーションを残している状態は何ですか?リフレッシュすると、一部のアプリケーションファイルは更新されますが、他のファイルは更新されません。接続が戻ったら、もう一度試しますか?どのくらいの頻度で?何回ですか?ネットワークがサービスワーカーキャッシュの更新に失敗した場合は、PWAをブリックしますか?
0
A
答えて
0
サービスワーカーの実装方法によって異なります。
一般的なモデルで、私がお勧めするものは、install
イベント中にキャッシュに追加して処理し、activate
イベント中にキャッシュから削除することです。
install
イベントでキャッシュの追加がevent.waitUntil()
の中にラップされていて、そのうちの1つが(ネットワーク障害またはその他の問題のため)例外をスローすると、新しい(または更新された)サービスワーカー失敗と見なされます。以前のバージョンのサービスワーカーは、使用されていれば引き続き使用されます。次にサービスワーカーのスコープの下にあるページへのナビゲーションがあるときには、新しいサービスワーカーに対して新鮮なinstall
イベントが発生し、キャッシュの追加を実行する別のチャンスが与えられます。
あなただけactivate
イベントでキャッシュをクリーンアップする場合は、install
プロセスが成功した場合を除きactivate
イベントが発生しませんので、インストールが失敗したときに、以前にキャッシュされたエントリが削除される心配する必要はありません。 (あなたのサービスワーカーは、他のタブがあるかどうかに応じて、解雇されinstall
間とactivate
にwaiting
状態で終わるかもしれないサービスワーカーの古いバージョンを使用して開いて、かどうか、あなたはself.skipWaiting()
を呼ぶ。)
ありますさらに多くの情報、サンプルコード、および図表をhttps://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#updates
関連する問題
- 1. サービスワーカーキャッシュが失敗しました
- 2. Subversion:競合が発生した場合に更新が失敗しますか?
- 3. フォームの検証が失敗した場合の更新フォームページ
- 4. 未処理エラーネットワークエラー:ネットワーク要求がエラーを失敗しました:ネットワーク要求がエラーを失敗しました:71「未処理エラーネットワークエラー:ネットワーク要求がエラーを失敗しました:ネットワークエラー:ネットワーク要求が新しいで失敗した新しいApolloError
- 5. mySqlに、更新が失敗した場合に挿入する更新/挿入コンボがありますか?
- 6. ユニットテストが失敗した場合にmakeが失敗する
- 7. 日付が更新に失敗しましたが、Update(Rails ActiveRecord)の場合にtrueを返します
- 8. チェックポイントが失敗した場合、Flinkパイプラインが失敗しますか?
- 9. 角度:更新が失敗した場合オブジェクトを元に戻す
- 10. 更新が失敗した場合、レスキューブロックにユーザ入力データをレンダリングする
- 11. JNI:GetStringUTFChars()は失敗した場合にOOMをスローしますか?
- 12. テストが失敗した場合、Android jenkinsビルドに失敗する
- 13. testngテストケースが失敗した場合、Bambooビルドに失敗する
- 14. ブロックが失敗した場合はクリーンアップステップを実行します。
- 15. djangoの移行に失敗した場合、データベースが変更されますか?
- 16. "カタログの更新に失敗しました"とpoeditが失敗する
- 17. トリガーが失敗した場合はどうなりますか?
- 18. Int32.TryParse()は失敗した場合に0を返します。成功または失敗ですか?
- 19. 4.0へのフライウェイ更新が途中で失敗した場合の対応
- 20. TFS 2015の「更新2」から「更新3」へのアップグレードプロセスが失敗した場合のコレクションデータベースの破損
- 21. オープンに失敗した場合はどうなりますか?
- 22. ステートメントが失敗した場合
- 23. エンティティフレームワークの更新が失敗したと
- 24. Androidスタジオ:インストールに失敗しました(メッセージがヌルの場合)
- 25. バンドルの更新は失敗します。
- 26. onCreateContextMenu()が失敗した場合、onListItemClick()をキャンセルします。
- 27. アンドロイドのsqlite制約が更新に失敗しました
- 28. Blackjackプロジェクトがアクセスデータベースの更新に失敗しました
- 29. データベースの更新時にzabbixが失敗しました
- 30. Attachment_fuが更新時に検証に失敗しました