Kurz-Fakten
- Festgelegt in der Service-Worker-Spezifikation des W3C
- Funktioniert nur über HTTPS – zum Testen auch auf localhost
- Läuft nicht dauerhaft, sondern wird für einzelne Ereignisse gestartet
- Hat keinen Zugriff auf die Seite selbst, nur auf Netzwerk, Cache und Benachrichtigungen
Einordnung
Was ein Service Worker darf – und was nicht
Der Service Worker sitzt zwischen der Web-App und dem Netzwerk. Er entscheidet, ob eine Datei frisch geladen oder aus dem Zwischenspeicher genommen wird, und macht eine App dadurch offline nutzbar. Trifft eine Push-Nachricht ein, startet der Browser ihn kurz, damit er die Benachrichtigung anzeigt. Er läuft aber nicht ununterbrochen, kann nicht auf die Oberfläche zugreifen und keinen Ton abspielen – deshalb ersetzt er keinen dauerhaft laufenden Wecker.
Updates in zwei Schritten
Liegt eine neue Version einer Web-App auf dem Server, installiert der Browser den neuen Service Worker im Hintergrund. Aktiv wird er erst, wenn die alte Version nicht mehr gebraucht wird – oder wenn die App ihn ausdrücklich übernehmen lässt. So ändert sich nichts mitten in der Benutzung.
In der Weckzentrale
Der Service Worker der Weckzentrale hält die App-Dateien offline bereit, zeigt Wecker und abgelaufene Countdowns als Benachrichtigung an und verarbeitet dort die Knöpfe Schlummern und Stopp. Ist eine neue Version bereit, bietet die App „Aktualisieren“ an.