A questo punto, i service worker potrebbero sembrare complessi. Ci sono molte interazioni complesse che sono difficili da gestire. Richieste di rete. Strategie di memorizzazione nella cache. Gestione della cache. Precauzione in corso. Sono tanti da ricordare. Ciò non rende il service worker una tecnologia mal progettata; funziona come previsto e risolve i problemi difficili.
Una buona astrazione rende le API complesse più facili da usare. È qui che entra in gioco Workbox. Workbox è un insieme di moduli che semplificano il routing e la memorizzazione nella cache dei Service worker comuni. Ogni modulo disponibile affronta un aspetto specifico dello sviluppo dei service worker. L'obiettivo di Workbox è semplificare il più possibile l'utilizzo dei service worker, garantendo al contempo la flessibilità necessaria per soddisfare requisiti applicativi complessi dove necessario.
Nei casi più semplici, workbox-build
offre un paio di metodi per generare un service worker che memorizza nella cache risorse specificate.
Il metodo generateSW
esegue la maggior parte del lavoro immediatamente, mentre il metodo injectManifest
offre un maggiore controllo quando necessario.
Per casi d'uso più avanzati, possono essere utili altri moduli. Alcuni di questi moduli sono:
workbox-routing
per la corrispondenza delle richieste.workbox-strategies
per le strategie di memorizzazione nella cache.workbox-precaching
per il precaricamento.workbox-expiration
per la gestione delle cache.workbox-window
per la registrazione di un service worker e la gestione degli aggiornamenti inwindow context
.
Questi e altri moduli aiutano a comporre il codice dei service worker in modo dichiarativo, più facile da leggere e gestire rispetto all'utilizzo diretto delle API dei service worker. Questa documentazione spiega come utilizzarli in una modalità applicata.