Angenommen, während eines Updates von PWA wird das Netzwerk unterbrochen und die Aktualisierung des Caches schlägt fehl. In welchem Zustand bleibt die App? Werden bei der Aktualisierung einige Anwendungsdateien aktualisiert, während andere nicht aktualisiert werden? Wenn eine Verbindung wiederhergestellt wird, wird es erneut versuchen? Wie oft? Wie oft?Bricke ich ein PWA, wenn das Netzwerk beim Update des Service-Workers-Caches ausfällt?
Antwort
Es hängt davon ab, wie der Service-Mitarbeiter implementiert ist.
Ein gemeinsames Modell, und eine, die ich empfehlen würde, ist während des install
Ereignisses kümmern, um den Cache des Hinzufügens, und kümmern sie während des activate
Ereignisses aus dem Cache zu löschen.
Wenn die Cache-Hinzufügungen innerhalb von event.waitUntil()
in einem install
-Ereignis eingeschlossen sind und eine dieser Ergänzungen eine Ausnahme (aufgrund eines Netzwerkfehlers oder eines anderen Problems) verursacht, dann die Installation des neuen (oder aktualisierten) Service Worker wird als ein Fehler angesehen werden. Die vorherige Version des Service-Arbeiters, falls es eine gab, wird weiterhin verwendet. Wenn es das nächste Mal eine Navigation zu einer Seite unter dem Bereich des Service-Arbeiters gibt, wird ein neues install
-Ereignis gegen den neuen Service-Mitarbeiter ausgelöst, und es wird eine weitere Chance gegeben, seine Cache-Ergänzungen durchzuführen.
Wenn Sie nur Caches im Fall activate
aufzuräumen, dann müssen Sie nicht über die zuvor gespeicherten Eingaben Sorge gelöscht werden, wenn die Installation fehlschlägt, da das activate
Ereignis nicht ausgelöst werden, wenn der install
Prozess erfolgreich war. (Ihr Servicemitarbeiter kann bis in einem waiting
Zustand zwischen install
und activate
abgefeuert enden, je nachdem, ob es andere Tabs geöffnet, die alte Version des Serviceangestellte mit, und ob oder nicht rufen Sie self.skipWaiting()
.)
Es gibt viel mehr Informationen, Beispielcode und Diagramme bei https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#updates
- 1. cmd-Skript, das ausfällt, wenn Text
- 2. Was tun, wenn ein Wächter ausfällt
- 3. Das Offline-Caching des Service-Arbeiters funktioniert nicht, wenn ich meinen PWA auf dem Startbildschirm hinzufüge
- 4. Verhindern, dass Maus ausfällt, wenn
- 5. Fehler beim Aufblasen des Klassenfragments, wenn ich das Fragment ersetze
- 6. Wenn Sie ein neuronales Netzwerk trainieren, sollten Sie alle Trainingsdaten auf einmal an das Netzwerk weitergeben?
- 7. prüfen, wenn ein Benutzer auf das Netzwerk in android
- 8. Wie macht man Haselcast Daten verlieren, wenn ein Knoten ausfällt?
- 9. Wie halte ich Datenbanken synchron, wenn Internet ausfällt
- 10. OkHttp Anfrage läuft weiter, auch wenn das Netzwerk
- 11. was passiert, wenn ein gesamter Cassandra-Cluster ausfällt
- 12. Wie WebRTC Anruf wieder aufzunehmen, wenn ein TURN-Server ausfällt
- 13. Was passiert, wenn der Zoowärter komplett ausfällt?
- 14. Ich brauche einen Dialog zu zeigen, wenn kein Netzwerk verfügbar und entlässt es hat, wenn das Netzwerk
- 15. Apache fällt zurück, wenn PHP ausfällt
- 16. ein Wörterbuch des Update-Funktion
- 17. appdynamics_javaprocess Warnung, wenn der Prozess ausfällt
- 18. Was passiert, wenn der Kubernetes Master ausfällt?
- 19. Update Etiketten, wenn das Textfeld
- 20. Kann ich einen Git Push verhindern, wenn Travis ausfällt?
- 21. Android Wifimanager aktivieren Netzwerk scheint das falsche Netzwerk zu aktivieren
- 22. Wie update ich Arangodb, wenn ich das Betriebssystem ändere
- 23. Tastatur verstecken, wenn der Fokus ausfällt UISearchBar
- 24. Push-Benachrichtigungssymbol für PWA
- 25. Deeplinking in ride.lyft PWA
- 26. Pwa serviceworker corses domain
- 27. Fehler beim Verbinden des Client-Servers mit lokalem Netzwerk
- 28. Wie lange dauert es, bis ein Bild ausfällt -?
- 29. C# winforms Blockieren der Verwendung meines Programms, wenn Internet ausfällt
- 30. simplexml_load_file - Fehler beim Öffnen des Streams: Netzwerk ist nicht erreichbar