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.
- 1. Postgres serverseitigen Cursor zum Zwischenspeichern verwenden
- 2. Warum jQuery-Objekte zwischenspeichern?
- 3. Redis zum Zwischenspeichern von Bilddateien?
- 4. Zwischenspeichern der gesamten Tabelle
- 5. NHibernate zum Zwischenspeichern einer Eigenschaft
- 6. Der beste Weg zum Zwischenspeichern von JSON
- 7. Können Service-Mitarbeiter POST-Anfragen zwischenspeichern?
- 8. Wie jnlp webstart verwenden und das jar nicht zwischenspeichern
- 9. Zwischenspeichern von Datenzugriffsschicht-Ergebnissen
- 10. Benutzer-Remote-Anmeldeinformationen für das Befehlszeilentool zwischenspeichern
- 11. JQuery UI Tabs Zwischenspeichern
- 12. Grundlegendes zum Zwischenspeichern von Bildern in Webbrowsern
- 13. Wie kann ich Lesevorgänge zwischenspeichern?
- 14. Verwenden von Ehcache zum Zwischenspeichern von Objekten aus Amazon S3
- 15. JavaScript-Dateien zwischenspeichern
- 16. Bilder in Memcached zwischenspeichern
- 17. Dateien im Browser zwischenspeichern
- 18. Wie kann ich Anmeldeinformationen in einem Web-Service zwischenspeichern?
- 19. ASP.NET kann Nullwert nicht zwischenspeichern
- 20. Zwischenspeichern aller Benutzer in ASP.NET
- 21. Wie zwischenspeichern die js-Dateien?
- 22. Wie in IPython Notebook zwischenspeichern?
- 23. Wie Abfrageergebnis in Django zwischenspeichern?
- 24. Browser stoppen Zwischenspeichern GWT nocache.js
- 25. Wie Ergebnisse in Scala zwischenspeichern?
- 26. Wie Bilder in Android zwischenspeichern?
- 27. Wie Bilder in Meteor zwischenspeichern?
- 28. Soll ich System.getProperty ("line.separator") zwischenspeichern?
- 29. activemq Verbraucher scheint "immer zwischenspeichern"?
- 30. Wie Zwischenspeichern von ASP.NET-Benutzersteuerelementen?
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