Un Service Worker est un script JavaScript qui s’exécute en arrière plan, en dehors du contexte de l’application (il n’a donc pas accès au DOM de la page ni aux interactions de l’utilisateur). Il joue le rôle de proxy et peut intercepter les requêtes exécutées. Il y répond alors selon le contexte (par exemple en faisant appel au cache si le réseau est indisponible). C’est également lui qui va envoyer des notifications push.
Un exemple courant de Service Worker que j’ai mis en place est celui expliqué ici : network or cache. L’application essaie d’abord de récupérer les ressources sur le réseau puis, si le réseau n’est pas disponible, il fait appel au cache.
Le site serviceworke.rs regroupe plein de cas d’utilisation des Sevice Workers.
Sources :
- Service Worker API
- Utiliser les Service Workers
- Découvrir le Service Worker
- Quatre bonnes raisons de faire du web hors connexion
Lecture complémentaire :
Je viens de tomber sur un article de David Rousset datant de 2011, titré « Introduction aux Web Workers d’HTML5 : le multithreading version JavaScript » qui est une vraie perle sur le sujet.