2017-06-19 3 views
1

Ich war sehr vorsichtig, einen Service-Mitarbeiter zu meinem PWA hinzuzufügen, der alle meine Dateien zwischenspeichern würde. Ich habe versucht, ein System zu implementieren, das den Server immer dazu aufruft, eine "Versions" -Datei zu erhalten, so dass der Cache gelöscht wird, wenn diese "Versions" -Datei aktualisiert wird.Verlust der Kontrolle über PWA durch aggressiven Service-Mitarbeiter

Allerdings hat etwas nicht richtig funktioniert, und jetzt die Clients nicht mehr den Server überhaupt aufrufen, da sie die Dateien haben, die sie benötigen. Dies ist perfekt für den Offline-Einsatz! Aber diese Clients werden den Server nie wieder aufrufen, also wenn ich die Seite aktualisiere, um das Problem zu beheben (was ich getan habe), erhalten sie das Update nicht!

Irgendwelche Vorschläge, wie ich wieder mit diesen Kunden verbinden kann?

+2

Mögliches Duplikat von [Wie kann ich einen fehlerhaften Service-Mitarbeiter entfernen oder einen "Kill-Switch" implementieren?] (Https://stackoverflow.com/questions/33986976/how-can-i-remove-a- buggy-service-worker-or-implement-a-kill-switch) –

+0

Die verknüpfte Frage ist eine gute Diskussion dieses Problems, gibt aber keine gute Antwort auf diese Frage. Es gibt möglicherweise keine Möglichkeit, das Problem zu lösen, als eine Weile zu warten oder auf andere Weise mit den Nutzern Ihrer Website zu kommunizieren. –

Antwort

4

Am einfachsten ist es, wenn Sie eine Änderung an Ihrem Service-Worker-Code vornehmen. In dieser Version löschen Sie Ihren Cache und entfernen Sie den Buggy-Code. Machen Sie sich keine Sorgen, das passiert häufig, wenn Sie mit dem Service-Worker-Caching arbeiten. :)

+0

Aber ... es gibt keine Möglichkeit, eine Änderung zu implementieren, da die Clients nicht für Updates zurückkommen! –

+3

Nein, wenn Sie den Service-Mitarbeiter ändern, sucht der Browser nach der neuen Version. Die längste Latenz, die Sie haben können, beträgt 24 Stunden. Wenn der Cache-Control-Header Ihres Service-Mitarbeiters beispielsweise 1 Jahr lang ist, überprüft der Browser, sobald der Benutzer die Site nach 24 Stunden besucht. Wenn es eine neue Version gibt, wird diese Version geladen. Wenn Ihr Cache-Control 1 Stunde ist, sucht der Browser 1 Stunde später nach einer neuen Version. –

+0

Gut zu wissen. Vielen Dank! –