Cloud-Native

Was ist ein Service Worker? Definition, Grundlagen und Funktionsweise

Umfassende Definition von Service Worker: Lifecycle, Browser-Unterstützung, Caching-Strategien und Anwendungsfälle für Progressive Web Apps.

C
CFTools Software
Autor
30. Januar 2026
6 min Lesezeit

Service Worker Definition

Ein Service Worker ist ein ereignisgesteuertes JavaScript-Skript, das der Browser im Hintergrund ausführt, getrennt von der Webseite. Er fungiert als programmierbarer Netzwerk-Proxy zwischen der Webanwendung und dem Netzwerk.

Service Worker ermöglichen:

  • Abfangen und Modifizieren von Netzwerkanfragen
  • Caching von Ressourcen für Offline-Nutzung
  • Hintergrund-Synchronisation
  • Push-Benachrichtigungen

Kernkonzepte

1. Lifecycle (Lebenszyklus)

Der Service Worker durchläuft einen definierten Lebenszyklus:

PhaseBeschreibung
RegistrationService Worker wird registriert und heruntergeladen
Installationinstall-Event wird ausgelöst, Ressourcen können gecacht werden
WaitingNeuer Service Worker wartet, bis alle Tabs geschlossen sind
Activationactivate-Event wird ausgelöst, alte Caches können gelöscht werden
IdleService Worker wartet auf Events
TerminatedBrowser beendet inaktiven Service Worker (wird bei Bedarf neu gestartet)

2. Scope (Geltungsbereich)

  • Service Worker kontrolliert alle Seiten innerhalb seines Scopes
  • Standardmäßig ist der Scope das Verzeichnis der Service Worker-Datei
  • Kann bei Registrierung eingeschränkt werden:
navigator.serviceWorker.register('/sw.js', {
  scope: '/app/'
});

3. Ereignisbasierte Architektur

Service Worker reagieren auf Events:

  • install – Bei Installation
  • activate – Bei Aktivierung
  • fetch – Bei Netzwerkanfragen
  • push – Bei Push-Nachrichten
  • sync – Bei Hintergrund-Synchronisation
  • message – Bei Nachrichten von der Seite

Browser-Unterstützung

BrowserUnterstützungSeit Version
ChromeVollständig40+
FirefoxVollständig44+
SafariVollständig11.1+
EdgeVollständig17+
OperaVollständig27+
Chrome AndroidVollständig40+
Safari iOSVollständig11.3+

Globale Browserabdeckung: ~97% (Stand 2026)

Grundlegende Implementierung

Registrierung

// main.js
if ('serviceWorker' in navigator) {
  window.addEventListener('load', async () => {
    try {
      const registration = await navigator.serviceWorker.register('/sw.js');
      console.log('SW registriert:', registration.scope);
    } catch (error) {
      console.error('SW Registrierung fehlgeschlagen:', error);
    }
  });
}

Installation und Caching

// sw.js
const CACHE_NAME = 'app-cache-v1';
const ASSETS = [
  '/',
  '/index.html',
  '/styles.css',
  '/app.js',
];

self.addEventListener('install', (event) => {
  event.waitUntil(
    caches.open(CACHE_NAME)
      .then((cache) => cache.addAll(ASSETS))
  );
});

Fetch-Interception

self.addEventListener('fetch', (event) => {
  event.respondWith(
    caches.match(event.request)
      .then((response) => response || fetch(event.request))
  );
});

Caching-Strategien

StrategieBeschreibungAnwendungsfall
Cache FirstZuerst Cache prüfen, dann NetzwerkStatische Assets, Fonts
Network FirstZuerst Netzwerk, bei Fehler CacheAktuelle API-Daten
Stale-While-RevalidateCache sofort, Netzwerk im HintergrundAPI-Responses, dynamische Inhalte
Cache OnlyNur Cache, kein NetzwerkOffline-kritische Assets
Network OnlyNur Netzwerk, kein CacheAnalytics, Authentifizierung

Sicherheitsanforderungen

  • HTTPS erforderlich: Service Worker funktionieren nur über HTTPS
  • Ausnahme: localhost für Entwicklung
  • Same-Origin-Policy: Service Worker können nur Ressourcen vom selben Origin cachen

Wichtige Begriffe

BegriffBeschreibung
ScopeURL-Bereich, den der Service Worker kontrolliert
ClientsFenster/Tabs, die vom Service Worker kontrolliert werden
skipWaiting()Überspringt Wartezeit und aktiviert neuen SW sofort
clients.claim()Übernimmt sofort Kontrolle über alle Clients
Cache APIBrowser-API zum Speichern von Request/Response-Paaren
WorkboxGoogle-Library für Service Worker Entwicklung

Verwandte Themen

  • Web Worker
  • Shared Worker
  • Progressive Web Apps (PWA)
  • Cache API
  • Background Sync API
  • Push API
  • IndexedDB

Einschränkungen

  • Kein Zugriff auf DOM
  • Kein Zugriff auf localStorage/sessionStorage
  • Asynchron (Promise-basiert)
  • Wird bei Inaktivität beendet
  • Keine synchronen XHR-Requests

CFTools Software entwickelt performante Web-Anwendungen mit Service Worker Caching für deutsche Unternehmen.

Tags:
Service Worker
PWA
Web Performance
Caching
JavaScript
Browser API
C

CFTools Software

Geschäftsführer und Gründer von CFTools Software GmbH. Leidenschaftlich in der Entwicklung skalierbarer Softwarelösungen und Cloud-Native-Architekturen.

Artikel nicht verfügbar

Dieser Artikel ist für Ihren Zugangstyp nicht verfügbar.

Alle Artikel anzeigen