Eine Einführung in JavaScript Service Worker

Eine Einführung in JavaScript Service Worker

Haben Sie sich jemals gefragt, wie einige Websites scheinbar weiter funktionieren, selbst wenn Sie offline sind? Das Geheimnis ist einfach: Diese Websites haben Servicemitarbeiter.





Servicemitarbeiter sind die Schlüsseltechnologie hinter vielen der nativen App-ähnlichen Funktionen moderner Webanwendungen.





Was sind Servicemitarbeiter?

Servicemitarbeiter sind eine spezialisierte Art von JavaScript-Webworker . Ein Service Worker ist eine JavaScript-Datei, die ein bisschen wie ein Proxy-Server funktioniert. Es fängt ausgehende Netzwerkanfragen von Ihrer Anwendung ab, sodass Sie benutzerdefinierte Antworten erstellen können. Sie können dem Benutzer beispielsweise zwischengespeicherte Dateien bereitstellen, wenn er offline ist.





Apple Watch Series 6 Aluminium vs. Edelstahl

Mit Servicemitarbeitern können Sie Ihren Webanwendungen auch Funktionen wie Hintergrundsynchronisierung hinzufügen.

WLAN bleibt beim Abrufen der IP-Adresse hängen

Warum Servicemitarbeiter?

Webentwickler versuchen schon lange, die Möglichkeiten ihrer Apps zu erweitern. Bevor Servicemitarbeiter auftauchten, konnten Sie verschiedene Lösungen verwenden, um dies zu ermöglichen. Besonders bemerkenswert war AppCache, das das Caching von Ressourcen bequem machte. Leider hatte es Probleme, die es für die meisten Apps zu einer unpraktischen Lösung machten.



AppCache schien eine gute Idee zu sein, da Sie damit ganz einfach Assets angeben konnten, die zwischengespeichert werden sollten. Es machte jedoch viele Annahmen darüber, was Sie zu tun versuchten, und brach dann schrecklich zusammen, als Ihre App diesen Annahmen nicht genau folgte. Lesen Sie Jake Archibalds (leider betitelt, aber gut geschrieben) Application Cache ist ein Douchebag für mehr Details. (Quelle: MDN )

Servicemitarbeiter sind der aktuelle Versuch, die Einschränkungen von Web-Apps zu verringern, ohne die Nachteile von Technologien wie AppCache.





wie man jemanden googelt, ohne dass er es merkt

Anwendungsfälle für Servicemitarbeiter

Was genau lassen Sie also von Servicemitarbeitern tun? Mit Service Workern können Sie Ihrer Webanwendung Funktionen hinzufügen, die für native Apps charakteristisch sind. Sie können auch auf Geräten, die Servicemitarbeiter nicht unterstützen, ein normales Erlebnis bieten. Apps wie diese werden manchmal aufgerufen Progressive Web-Apps (PWAs) .

Hier sind einige der Funktionen, die Servicemitarbeiter ermöglichen:





  • Der Benutzer kann die App (oder zumindest Teile davon) weiter verwenden, wenn er nicht mehr mit dem Internet verbunden ist. Service Worker erreichen dies, indem sie zwischengespeicherte Assets als Reaktion auf Anfragen bereitstellen.
  • In Chromium-basierten Browsern ist ein Servicemitarbeiter eine der Voraussetzungen, damit eine Web-App installierbar ist.
  • Damit Ihre Webanwendung Push-Benachrichtigungen implementieren kann, sind Servicemitarbeiter erforderlich.

Der Lebenszyklus eines Servicemitarbeiters

Servicemitarbeiter können Anfragen für eine ganze Website oder nur einen Teil der Seiten der Website kontrollieren. Eine bestimmte Webseite kann nur einen aktiven Servicemitarbeiter haben, und alle Servicemitarbeiter haben einen ereignisbasierten Lebenszyklus. Der Lebenszyklus eines Servicemitarbeiters sieht im Allgemeinen wie folgt aus:

  1. Registrierung und Download des Workers. Das Leben eines Servicemitarbeiters beginnt, wenn eine JavaScript-Datei ihn registriert. Wenn die Registrierung erfolgreich ist, lädt der Service Worker herunter und beginnt dann mit der Ausführung in einem speziellen Thread.
  2. Wenn eine vom Dienstmitarbeiter gesteuerte Seite geladen wird, empfängt der Dienstmitarbeiter ein 'install'-Ereignis. Dies ist immer das erste Ereignis, das ein Servicemitarbeiter erhält, und Sie können innerhalb des Mitarbeiters einen Listener für dieses Ereignis einrichten. Das „install“-Ereignis wird im Allgemeinen verwendet, um alle Ressourcen abzurufen und/oder zwischenzuspeichern, die der Servicemitarbeiter benötigt.
  3. Nachdem der Service Worker die Installation abgeschlossen hat, erhält er ein „activate“-Ereignis. Dieses Ereignis ermöglicht es dem Mitarbeiter, redundante Ressourcen zu bereinigen, die von vorherigen Servicemitarbeitern verwendet wurden. Wenn Sie einen Servicemitarbeiter aktualisieren, wird das Aktivierungsereignis nur ausgelöst, wenn dies gefahrlos möglich ist. Dies ist der Fall, wenn keine geladenen Seiten mehr die alte Version des Service Workers verwenden.
  4. Danach hat der Servicemitarbeiter die volle Kontrolle über alle Seiten, die nach erfolgreicher Registrierung geladen wurden.
  5. Die letzte Phase des Lebenszyklus ist die Redundanz, die auftritt, wenn der Service Worker entfernt oder durch eine neuere Version ersetzt wird.

So verwenden Sie Service Worker in JavaScript

Die Service Worker-API ( MDN ) stellt die Schnittstelle bereit, mit der Sie Servicemitarbeiter in JavaScript erstellen und mit ihnen interagieren können.