Ich lese Service-Mitarbeiter für Offline-Caching ähnlich wie Browser-Caching. Warum sollte man Service-Mitarbeiter für dieses Caching bevorzugen? Selbst das Browser-Caching prüft, ob die Datei geändert wurde oder nicht, und wird dann vom Cache aus bedient, während der Service-Mitarbeiter dasselbe aus unserem Code behandelt. Aber standardmäßig hat Browser diese Funktion, warum Service-Worker bevorzugen?Warum Service Worker zum Zwischenspeichern verwenden, wenn der Browser-Cache das Zwischenspeichern verarbeitet?
Antwort
Service-Mitarbeiter geben Ihnen die vollständige Kontrolle über Netzwerkanforderungen. Sie können alles, was Sie für das Fetch-Ereignis wünschen, zurückgeben, es muss nicht der frühere oder aktuelle Inhalt dieser bestimmten Datei sein.
Wenn jedoch der Browser-Cache Ihre Anforderungen erfüllt, sind Sie nicht verpflichtet, Service Worker zu verwenden.
Sie werden auch für Dinge wie Push-Benachrichtigungen verwendet.
Dokumentation: https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API, https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers
Ich wollte die Punkte teilen, die ich beobachtet, während sie durch Servicemitarbeiter Dokumentation gehen und umgesetzt. Der Browser-Cache ist anders. Da der Service-Mitarbeiter den Offline-Cache unterstützt, greift die Webanwendung auf den zwischengespeicherten Inhalt zu, obwohl das Netzwerk nicht verfügbar ist.
- Service-Mitarbeiter wird native Erfahrung geben.
- Der Service-Mitarbeiter kann den DOM-Inhalt nicht ändern, aber dennoch können die Seiten in seinem Bereich bereitgestellt werden. Mit Hilfe von Ereignissen wie postMessage kann auf die Seite zugegriffen werden und DOM kann geändert werden.
- Service-Mitarbeiter benötigen keine Benutzerinteraktion oder Webseite. Es läuft im Hintergrund.
Ich zweite die "vollständige Kontrolle über Netzwerkanforderungen." Service-Mitarbeiter können beispielsweise Header und eine Ressource mit einer anderen Ressource (z. B. offline) bearbeiten, die der Browser-Cache nicht ausführen kann. Wenn Sie nur einen Standard-Browser-Cache benötigen, gibt es keinen Grund, ihn als Service-Mitarbeiter neu zu implementieren - es wird nicht schneller oder einfacher zu verwenden sein. – mjs