2017-10-18 1 views

Antwort

0

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

Verwandte Themen