Ciclo di vita del service worker
Le fasi che attraversa un service worker — install, activate, poi attivo (fetch) — con una fase di «waiting» voluta: la nuova versione non subentra finché tutte le schede vecchie non sono chiuse. Notoriamente insidioso e fonte frequente del «perché la mia PWA non si aggiorna?».
Le fasi: install (preparazione, ad esempio mettere in cache le risorse), activate (pulizia delle vecchie cache, presa di controllo), poi il worker resta in esecuzione e intercetta le richieste di rete (fetch). Il punto delicato: un nuovo service worker pubblicato si installa ma resta in waiting; non si attiva finché tutte le schede controllate dal precedente non sono chiuse, per non sostituire il codice sotto un'app in esecuzione. Per questo gli utenti vedono spesso una versione vecchia finché non chiudono ogni scheda. Gli strumenti per gestirlo: skipWaiting() (attiva subito la nuova versione) e clients.claim() (prende il controllo delle schede aperte), spesso accompagnati da un avviso «nuova versione disponibile, ricaricare?». Capirlo è essenziale per aggiornamenti PWA e cache offline affidabili. Imparentato con Cache Storage API e Broadcast Channel.