Een inleiding tot JavaScript-servicemedewerkers

Een inleiding tot JavaScript-servicemedewerkers

Heb je je ooit afgevraagd hoe sommige websites lijken te blijven werken, zelfs als je offline bent? Het geheim is simpel: deze websites hebben servicemedewerkers.





hoe u uw ip-adres kunt vervalsen

Servicemedewerkers zijn de belangrijkste technologie achter veel van de native app-achtige functies van moderne webapplicaties.





Wat zijn servicemedewerkers?

Servicemedewerkers zijn een gespecialiseerd type JavaScript-webwerkers . Een servicemedewerker is een JavaScript-bestand dat een beetje werkt als een proxyserver. Het vangt uitgaande netwerkverzoeken van uw toepassing op, zodat u aangepaste antwoorden kunt maken. U kunt bijvoorbeeld gecachte bestanden aan de gebruiker aanbieden wanneer deze offline is.





Met servicemedewerkers kunt u ook functies zoals achtergrondsynchronisatie toevoegen aan uw webtoepassingen.

Waarom servicemedewerkers?

Webontwikkelaars proberen al heel lang de mogelijkheden van hun apps uit te breiden. Voordat er servicemedewerkers kwamen, kon je verschillende oplossingen gebruiken om dit mogelijk te maken. Een bijzonder opvallende was AppCache, die het cachen van bronnen gemakkelijk maakte. Helaas had het problemen waardoor het voor de meeste apps een onpraktische oplossing was.



AppCache leek een goed idee, omdat je hiermee activa heel gemakkelijk in de cache kon specificeren. Het maakte echter veel aannames over wat je probeerde te doen en brak vervolgens vreselijk toen je app die aannames niet precies volgde. Lees Jake Archibald's (helaas getiteld maar goed geschreven) Applicatiecache is een Douchebag voor meer details. (Bron: MDN )

Servicemedewerkers zijn de huidige poging om de beperkingen van web-apps te verminderen, zonder de nadelen van technologie zoals AppCache.





Gebruiksscenario's voor servicemedewerkers

Dus wat laten servicemedewerkers je precies doen? Met servicemedewerkers kunt u kenmerken die kenmerkend zijn voor native apps aan uw webtoepassing toevoegen. Ze kunnen ook een normale ervaring bieden op apparaten die geen ondersteuning bieden aan servicemedewerkers. Dergelijke apps worden soms Progressive Web Apps (PWA's) .

bestanden van de ene Google Drive naar de andere verplaatsen

Hier zijn enkele van de functies die servicemedewerkers mogelijk maken:





  • De gebruiker de app (of in ieder geval delen ervan) laten blijven gebruiken wanneer ze niet langer verbonden zijn met internet. Servicemedewerkers bereiken dit door in het cachegeheugen opgeslagen activa te leveren als reactie op verzoeken.
  • In op Chromium gebaseerde browsers is een servicemedewerker een van de vereisten om een ​​web-app te installeren.
  • Servicemedewerkers zijn nodig om uw webapplicatie pushnotificaties te laten implementeren.

De levenscyclus van een servicemedewerker

Servicemedewerkers kunnen verzoeken voor een hele site beheren, of slechts een deel van de pagina's van de site. Een bepaalde webpagina kan slechts één actieve servicemedewerker hebben en alle servicemedewerkers hebben een op gebeurtenissen gebaseerde levenscyclus. De levenscyclus van een servicemedewerker ziet er over het algemeen als volgt uit:

  1. Registratie en downloaden van de werknemer. Het leven van een servicemedewerker begint wanneer een JavaScript-bestand het registreert. Als de registratie is gelukt, wordt de servicemedewerker gedownload en wordt deze vervolgens uitgevoerd in een speciale thread.
  2. Wanneer een door de servicemedewerker beheerde pagina wordt geladen, ontvangt de servicemedewerker een 'install'-gebeurtenis. Dit is altijd de eerste gebeurtenis die een servicemedewerker ontvangt en u kunt binnen de medewerker een listener voor deze gebeurtenis instellen. De gebeurtenis 'install' wordt over het algemeen gebruikt om resources op te halen en/of te cachen die de servicemedewerker nodig heeft.
  3. Nadat de servicemedewerker de installatie heeft voltooid, ontvangt deze een gebeurtenis 'activeren'. Met deze gebeurtenis kan de werknemer overtollige bronnen opschonen die door eerdere servicemedewerkers zijn gebruikt. Als u een servicemedewerker bijwerkt, wordt de activeringsgebeurtenis alleen geactiveerd als dit veilig kan. Dit is zodra er geen geladen pagina's zijn die nog de oude versie van de servicemedewerker gebruiken.
  4. Daarna heeft de servicemedewerker volledige controle over alle pagina's die zijn geladen nadat deze met succes is geregistreerd.
  5. De laatste fase van de levenscyclus is redundantie, die optreedt wanneer de servicemedewerker wordt verwijderd of vervangen door een nieuwere versie.

Servicemedewerkers gebruiken in JavaScript

De Service Worker-API ( MDN ) biedt de interface waarmee u servicemedewerkers in JavaScript kunt maken en ermee kunt communiceren.