Manfred Steyer

Obwohl Service Workers eine sehr mächtige Technologie darstellen, gilt es häufig, dieselben Muster zu implementieren. Genau hierbei hilft das Paket @angular/ service-worker, indem es solche Implementierungen bereits mitbringt und so die Umsetzung von Progressive Web Apps enorm erleichtert.

Das vom Angular-Team bereitgestellte Paket @angular/service-worker erleichtert die Umsetzung von Progressive Web Apps, indem es einen Service Worker für Offlineszenarien einrichtet. Das Caching-Verhalten lässt sich über eine Konfiguration anpassen. Außerdem wird die Arbeit mit Push Notifications erheblich vereinfacht.

Progressive Web Apps verbinden die Vorzüge des Webs mit dem Besten aus der Welt nativer Anwendungen. Das Ergebnis sind Webanwendungen, die sich vom Home-Screen starten lassen und dank Offlinefähigkeit schlechte oder fehlende Datenverbindungen überbrücken. Eine Schlüsseltechnologie hierfür sind Service Worker, die als Hintergrundprozesse im Browser laufen und bei Bedarf Anfragen aus einem Cache beantworten, Browserdatenbanken mit Web-APIs synchronisieren oder Push Notifications entgegennehmen.

Auch wenn Service Worker sehr mächtig sind, implementieren sie häufig dieselben Aufgaben. Genau hier setzt das Angular-Team mit dem Paket @angular/service-worker an: Es bietet eine schlanke Abstraktion für die nicht immer handlichen Browser-APIs rund um Service Worker und implementiert immer wiederkehrende Anforderungen. Dazu gehört etwa das Cachen von Anwendungsbestandteilen, aber auch das Empfangen und Anzeigen von Push-Nachrichten.

Dieser Artikel geht anhand eines Fallbeispiels auf dieses Paket ein, das beginnend mit Angular 4.3 veröffentlicht werden soll. Dabei handelt es sich um eine einfache Anwendung zum Suchen nach Flügen (Abb. 1), die dank @angular/service-worker nach und nach um die genannten Möglichkeiten erweitert wird.

Abb. 1: Fallbeispiel

Service Worker

Service Worker sind lediglich von einer Website installierte Skripte, die der Browser im Hintergrund ausführt. Sie laufen fortan sogar ohne die Website und können so anstehende Daten synchronisieren oder Push-Nachrichten empfangen. Allerdings beschäftigen sie die CPU in der Regel nicht ständig, sondern nur dann, wenn sie von einem Browserereignis informiert werden.

Zur Realisierung offlinefähiger Webanwendungen können Service Worker auch HTTP-Anfragen abfangen und entscheiden, wie sie zu beantworten sind. Beispielsweise können sie dazu auf einen Cache zugreifen oder frische Daten aus dem Web heranschaffen.

Um Sicherheitslücken zu vermeiden, gilt für Service Worker die Same Origin Policy (SOP). Das bedeutet salopp formuliert, dass sie nur für jene Website aktiv werden dürfen, die sie auch installiert hat. Zusätzlich kann eine Webanwendung den Wirkungsbereich von Service Worker auf eines ihrer Unterverzeichnisse beschränken.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 9.17 - "Progressive Service Worker"

Alle Infos zum Heft
579808028Progressive Web Apps auf Knopfdruck?
X
- Gib Deinen Standort ein -
- or -