Che cos’è un Service Worker
Un Service Worker è essenzialmente un file JavaScript che viene eseguito su un thread separato rispetto a quello principale del browser. Questo componente risulta essere molto utile in quanto è in grado d’intercettare richieste dalla rete, salvare/ritrovare dati nella cache e inviare notifiche push all’utente. È quindi un componente fondamentale da implementare qualora si volesse sviluppare una PWA.
Possiamo considerare un Service Worker come un miglioramento dell’esperienza utente durante la navigazione. Qualora un utente dovesse utilizzare un browser obsoleto che non supporta i Service Worker, tutte le funzionalità base della PWA sarebbero comunque garantite.
Funzionalità principali di un Service Worker
Un Service Worker possiede una serie di funzionalità, di seguito vi elenco quelle principali.
- Agisce come proxy tra il browser Web e il server Web permettendo di controllare e gestire le richieste a una pagina Web.
- Funziona solamente con il protocollo HTTPS.
- Passa in stato idle quando non è utilizzato e si riattiva quando è necessario, non esiste quindi uno stato globale persistente tra differenti eventi. Per salvare le informazioni da riutilizzare successivamente, si fa uso degli IndexedDB.
- Offre due API per permettere a un’applicazione di lavorare offline:
- fetch: il modo standard per ritrovare informazioni dalla rete;
- cache: per memorizzare precedenti richieste e velocizzare quelle future.
- È un oggetto event driven, ovvero ciascun task è lanciato in risposta a uno specifico evento.