Une introduction aux Service Workers JavaScript

Une introduction aux Service Workers JavaScript

Vous êtes-vous déjà demandé comment certains sites Web semblent continuer à fonctionner même lorsque vous êtes hors ligne ? Le secret est simple : ces sites Web ont des travailleurs de service.





Les travailleurs de service sont la technologie clé derrière de nombreuses fonctionnalités natives de type application des applications Web modernes.





Que sont les travailleurs des services ?

Les travailleurs des services sont un type spécialisé de Travailleurs Web JavaScript . Un service worker est un fichier JavaScript qui fonctionne un peu comme un serveur proxy. Il intercepte les requêtes réseau sortantes de votre application, vous permettant de créer des réponses personnalisées. Vous pouvez, par exemple, fournir des fichiers mis en cache à l'utilisateur lorsqu'il est hors ligne.





télécharger des vidéos youtube sur la pellicule de l'iphone

Les techniciens de service vous permettent également d'ajouter des fonctionnalités telles que la synchronisation en arrière-plan à vos applications Web.

Pourquoi les Service Workers ?

Les développeurs Web essaient depuis longtemps d'étendre les capacités de leurs applications. Avant l'arrivée des techniciens de service, vous pouviez utiliser diverses solutions pour rendre cela possible. AppCache est particulièrement remarquable, ce qui rend les ressources de mise en cache pratiques. Malheureusement, il y avait des problèmes qui en faisaient une solution peu pratique pour la plupart des applications.



pourquoi mon ordinateur met-il autant de temps à démarrer

AppCache semblait être une bonne idée car il vous permettait de spécifier très facilement les actifs à mettre en cache. Cependant, il a fait de nombreuses hypothèses sur ce que vous essayiez de faire, puis s'est horriblement cassé lorsque votre application n'a pas suivi exactement ces hypothèses. Lisez celui de Jake Archibald (malheureusement intitulé mais bien écrit) Le cache d'application est un douchebag pour plus de détails. (La source: MDN )

Les service workers sont la tentative actuelle de réduire les limites des applications Web, sans les inconvénients de technologies comme AppCache.





Cas d'utilisation pour les techniciens de service

Alors, qu'est-ce que les techniciens de service vous laissent faire exactement ? Les Service Workers vous permettent d'ajouter des fonctionnalités caractéristiques des applications natives à votre application Web. Ils peuvent également fournir une expérience normale sur les appareils qui ne prennent pas en charge les techniciens de maintenance. Des applications comme celle-ci sont parfois appelées Applications Web progressives (PWA) .

utilisation du disque Windows 10 à 100

Voici quelques-unes des fonctionnalités rendues possibles par les techniciens de service :





  • Permettre à l'utilisateur de continuer à utiliser l'application (ou au moins une partie de celle-ci) lorsqu'il n'est plus connecté à Internet. Les techniciens de service y parviennent en servant des actifs mis en cache en réponse aux demandes.
  • Dans les navigateurs basés sur Chromium, un agent de service est l'une des conditions requises pour qu'une application Web puisse être installée.
  • Les service workers sont nécessaires pour que votre application web puisse implémenter les notifications push.

Le cycle de vie d'un service worker

Les techniciens de service peuvent contrôler les requêtes pour un site entier ou seulement une partie des pages du site. Une page Web particulière ne peut avoir qu'un seul agent de service actif, et tous les agents de service ont un cycle de vie basé sur les événements. Le cycle de vie d'un service worker ressemble généralement à ceci :

  1. Inscription et téléchargement du travailleur. La vie d'un service worker commence lorsqu'un fichier JavaScript l'enregistre. Si l'enregistrement réussit, le service worker télécharge, puis commence à s'exécuter dans un thread spécial.
  2. Lorsqu'une page contrôlée par le service worker est chargée, le service worker reçoit un événement 'install'. Il s'agit toujours du premier événement qu'un agent de service reçoit, et vous pouvez configurer un écouteur pour cet événement dans l'agent. L'événement 'install' est généralement utilisé pour récupérer et/ou mettre en cache toutes les ressources dont le service worker a besoin.
  3. Une fois que le service worker a terminé l'installation, il reçoit un événement 'activate'. Cet événement permet à l'agent de nettoyer les ressources redondantes utilisées par les agents de service précédents. Si vous mettez à jour un technicien de service, l'événement activate ne se déclenchera que lorsque cela sera possible en toute sécurité. C'est une fois qu'il n'y a plus de pages chargées utilisant encore l'ancienne version du service worker.
  4. Après cela, le technicien de service a le contrôle total de toutes les pages qui ont été chargées après son enregistrement réussi.
  5. La dernière phase du cycle de vie est la redondance, qui se produit lorsque le service worker est supprimé ou remplacé par une version plus récente.

Comment utiliser les Service Workers en JavaScript

L'API Service Worker ( MDN ) fournit l'interface qui vous permet de créer et d'interagir avec les service workers en JavaScript.