0Pricing
HTML Academy · Lektion

Service Worker aus HTML registrieren

Registrieren Sie einen Service Worker mit einem script-Tag und der navigator-API

Service Worker aus HTML registrieren ist eine kostenlose HTML Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des HTML Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ein Service Worker ist

Ein Service Worker ist eine JavaScript-Datei, die unabhängig von jeder Seite im Hintergrund ausgeführt wird und Netzwerkverbindungen innerhalb seines Gültigkeitsbereichs abfängt. Er ermöglicht Offline-Unterstützung, Push-Benachrichtigungen, Hintergrundsynchronisierung und schnellere wiederholte Ladevorgänge durch Caching.

Registrierung

Registrieren Sie den Worker in einem Seitenskript: navigator.serviceWorker.register("/sw.js"). Der Browser ruft /sw.js ab, analysiert die Datei, führt ihr Installationsereignis aus und beginnt, Anfragen innerhalb des Gültigkeitsbereichs der Registrierung abzufangen.

if ("serviceWorker" in navigator) {
  navigator.serviceWorker.register("/sw.js")
    .then((reg) => console.log("Registered, scope:", reg.scope))
    .catch((err) => console.error("Registration failed:", err));
}

Zuerst die Funktion erkennen

Ältere Browser unterstützen keine Service Worker. Erkennen Sie die Funktion daher immer mit "serviceWorker" in navigator, bevor Sie register aufrufen; andernfalls löst der Aufruf in Browsern ohne diese API einen Fehler aus. Ein Polyfill ist nicht praktikabel – Service Worker können nicht per Polyfill nachgebildet werden, da sie eine Integration auf Browserebene erfordern.

Gültigkeitsbereich

Der Gültigkeitsbereich ist das Pfadpräfix, das der Worker kontrolliert. Standardmäßig entspricht er dem Verzeichnis der Worker-Datei: /sw.js kontrolliert alle URLs unter /. Um einen Worker mit tieferem Gültigkeitsbereich von einem anderen Dateispeicherort aus zu registrieren, setzen Sie die scope-Option UND stellen Sie den Service-Worker-Allowed-Header bereit.

Wo sw.js abgelegt wird

Legen Sie sw.js im Stammverzeichnis der Anwendung (/sw.js) ab, damit der standardmäßige Gültigkeitsbereich die gesamte Website umfasst. Tiefere Pfade (/app/sw.js) beschränken den Gültigkeitsbereich auf /app/ und darunter, was nur selten gewünscht ist.

Zeitpunkt der Registrierung

Registrieren Sie den Worker nach dem Laden der Seite, damit er beim kritischen Rendern keine Bandbreite beansprucht: window.addEventListener("load", () => navigator.serviceWorker.register("/sw.js")). Die PWA-Funktionen greifen bei späteren Besuchen, ohne den ersten Besuch zu verzögern.

Aktualisierungen

Der Browser prüft automatisch, ob eine aktualisierte Version von sw.js vorhanden ist (normalerweise alle 24 Stunden und bei den meisten Seitenaufrufen). Wenn sich der Dateiinhalt geändert hat, wird der neue Worker heruntergeladen, installiert und wartet im Zustand "waiting", bis alle vorhandenen Tabs geschlossen sind – danach wird er aktiviert.

Aktualisierungen erzwingen

registration.update() löst manuell eine Aktualisierungsprüfung aus. self.skipWaiting() in der neuen Version von sw.js aktiviert sie sofort, ohne auf das Schließen der Tabs zu warten. Kombinieren Sie beides für das Verhalten "immer den neuesten Worker ausführen" – auf Kosten erneuter Abrufe während einer Sitzung.

Registrierung aufheben

registration.unregister() entfernt den Worker. Das ist während der Entwicklung hilfreich, wenn ein fehlerhafter Worker Ihre Website beeinträchtigt. In Chrome DevTools bietet Application → Service Workers zu diesem Zweck beim Debuggen eine Schaltfläche "Unregister".

Häufiger Fehler

Die Registrierung eines Workers über HTTP (ohne HTTPS) schlägt stillschweigend fehl – Service Worker erfordern eine sichere Herkunft (HTTPS oder localhost für die Entwicklung). Prüfen Sie die Konsole auf die Meldung "An SSL certificate error occurred", wenn die Registrierung nicht wirksam wird.

Worker und Seite koordinieren

Der Worker hat keinen Zugriff auf das DOM. Um Nachrichten zu übertragen, verwenden Sie navigator.serviceWorker.controller.postMessage() auf der Seite und self.addEventListener("message", handler) im Worker (und umgekehrt). Das ist nützlich für Cache-Invalidierung, Versionsprüfungen und benutzerdefinierte Ereignisse.

Erster Besuch vs. wiederholter Besuch

Beim ersten Besuch wird der Worker installiert und beginnt erst nach dem Neuladen der Seite, Seiten zu kontrollieren. Damit er die erste Navigation sofort kontrolliert, rufen Sie im Activate-Ereignis self.clients.claim() auf – das ist für Offline-First-Apps nützlich.

Wissenscheck

Warum müssen Service Worker über HTTPS (oder localhost) bereitgestellt werden?

Zusammenfassung

Registrieren Sie Service Worker nach einer Funktionserkennung aus dem Seiten-JavaScript mit navigator.serviceWorker.register("/sw.js"). Legen Sie sw.js für einen vollständigen Gültigkeitsbereich im Stammverzeichnis der Anwendung ab. Registrieren Sie den Worker beim Laden, damit das kritische Rendern nicht beeinträchtigt wird. Aktualisierungen werden regelmäßig automatisch geprüft; erzwingen können Sie sie mit registration.update oder skipWaiting. HTTPS ist erforderlich, um das Einschleusen schädlicher Worker zu verhindern.

Häufig gestellte Fragen

Ist die Lektion „Service Worker aus HTML registrieren“ kostenlos?

Ja — der vollständige Text von „Service Worker aus HTML registrieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des HTML Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Service Worker aus HTML registrieren“?

Registrieren Sie einen Service Worker mit einem script-Tag und der navigator-API Du übst HTML Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um HTML Academy zu starten?

Keine Vorkenntnisse erforderlich. HTML Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Service Worker aus HTML registrieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser HTML Academy-Lektion Code schreiben und ausführen?

Ja. Jede HTML Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Das Web-App-Manifest
  2. Service Worker aus HTML registrieren
  3. Theme-Farbe und App-Symbole
  4. Offline-Fallback-Seite
← Zurück zu HTML Academy