Heute an dieser Stelle etwas über Service Workers. Dieses Feature ist zwar neu, werkelt aktuell in so ziemlich jedem Browser (Firefox ab Version 44, Chrome ab Version 40, Edge ab Version 17, Safari ab Version 11.1 und Opera ab Version 27). Ich habe lange nach einer brauchbaren, guten Erklärung gesucht. Fündig geworden bin ich bei Dr.Web
Dort steht, dass Javascript bisher nur solange wie eine Webseite im Tab geöffnet war ausgeführt wurde. Mit dem Schließen dieser Website durch Schließen des Browser-Tabs oder des Fensters wurden auch sämtliche ausgeführten JavaScripts beendet. Die neuen Service Worker erlauben es jedoch eine JavaScript auch dann auszuführen, wenn die dazugehörige Website gar nicht geöffnet ist.
Damit lässt sich schon einiges anstellen. Bisher habe ich mich immer gefragt, wie das mit den Push-Benachrichtigungen funktioniert. Jetzt weiß ich das.
Was man mit Service Worker anstellen kann
- Speichern von Webseiteninhalt, ohne die Seite aufgerufen zu haben. Die aktuellste Seite steht dann auch ohne Netzwerkverbindung zur Verfügung.
- Ist die Grundlage für Push-Notification
- Erlaubt zu erkennen, wenn kein Netzwerk zur Verfügung steht. Kann dadurch das Laden des neuen Inhalts verschieben.
Service Worker in Firefox löschen
Für diese neuen Service Worker stellt Firefox eine neuen about-Seite bereit. Die installierten Service-Worker lassen sich dort per about:serviceworkers
aufrufen. Um sie wieder los zu werden geht man wie folgt vor.
- Dienst über
about:serviceworkers
abmelden - Über
about:preferences#privacy
den Cache leeren - Per Strg+F5 Seite neu laden.
Service Workers in Firefox deaktivieren
Jetzt kann jeder selbst eine Meinung zu diesem Feature haben. Für mich sind die Dinger für die bei mir verhassten Benachrichtigungen zuständig. Auch die anderen Einsatzzwecke brauche ich nicht. Und überhaupt brauche ich solche Service Workers nicht. Deshalb habe ich sie in Firefox per about:config
deaktiviert. Es genügt dort den Schlüssel dom.serviceWorkers.enabled auf false zu stellen.
Service Worker in Chromium basierten Browsern löschen
Auch in Chromium basierten Browsern lassen sich einzelne Service Worker löschen. Die entsprechende Seite kann, egal ob Chrome, Edge, Vivaldi oder Opera mit chrome://serviceworker-internals
aufgerufen werden. Dort lässt er sich über „Unregister“ löschen.