Une PWA peut fonctionner même dans une contexte déconnecté. Une PWA affichera ainsi du contenu même si elle n’a pas de réseau.
Le hors-ligne avant les PWA
Le concept d’application web pouvant afficher du contenu hors-ligne n’est pas nouveau. Depuis les débuts de HTML5, les concepts de localstorage et appcache sont apparus pour répondre au besoin d’afficher du contenu hors ligne.
Le localstorage et sessionstorage sont des mécanismes de clés / valeurs permettant de stocker des données en local sur la machine.
L’appcache est quand à lui l’ancêtre du ‘Service Worker’. Il permettait de mettre à disposition un site web même dans un contexte hors-ligne. Cependant, l’appcache ne permettait de mettre en cache que des fichiers. Le Service Worker va bien plus loin dans les fonctionnalités offertes.
L’appcache a été assez décrié et a été très buggué au point qu’il fait parti des rares standard à être retiré des standards W3C.
Service Worker
Un Service Worker est un service qui tourne en dehors du flux principal de votre page web et qui s’intègre entre votre page web & le réseau externe.
Un ‘Service Worker’ fonctionne par événements ! Il est conçu pour écouter des événements et y répondre.
Pour rendre une page disponible même hors-ligne, le Service Worker doit répondre à l’événement fetch qui est appelé à chaque fois que la page a besoin d’une ressource externe (image, appel http, ressource, …)