Un'introduzione ai lavoratori del servizio JavaScript

Un'introduzione ai lavoratori del servizio JavaScript

Ti sei mai chiesto come sembrano continuare a funzionare alcuni siti Web anche quando sei offline? Il segreto è semplice: questi siti Web hanno addetti ai servizi.





I service worker sono la tecnologia chiave alla base di molte delle funzionalità native simili alle app delle moderne applicazioni Web.





Cosa sono i lavoratori dei servizi?

I lavoratori dei servizi sono un tipo specializzato di JavaScript web worker . Un service worker è un file JavaScript che funziona un po' come un server proxy. Cattura le richieste di rete in uscita dalla tua applicazione, permettendoti di creare risposte personalizzate. Ad esempio, potresti fornire file memorizzati nella cache all'utente quando è offline.





I service worker ti consentono anche di aggiungere funzionalità come la sincronizzazione in background alle tue applicazioni web.

Perché i lavoratori dei servizi?

Gli sviluppatori Web hanno cercato di espandere le capacità delle loro app per molto tempo. Prima che arrivassero gli addetti all'assistenza, era possibile utilizzare varie soluzioni per renderlo possibile. Uno particolarmente degno di nota è stato AppCache, che ha reso convenienti le risorse di memorizzazione nella cache. Sfortunatamente, ha avuto problemi che lo hanno reso una soluzione poco pratica per la maggior parte delle app.



come creare un mod di minecraft 1.12.2

AppCache sembrava essere una buona idea perché ti permetteva di specificare le risorse da memorizzare nella cache molto facilmente. Tuttavia, ha fatto molte ipotesi su ciò che stavi cercando di fare e poi si è rotto in modo orribile quando la tua app non ha seguito esattamente quelle ipotesi. Leggi Jake Archibald (sfortunatamente intitolato ma ben scritto) Application Cache è un Douchebag per ulteriori dettagli. (Fonte: MDN )

I service worker sono l'attuale tentativo di ridurre i limiti delle app Web, senza gli svantaggi di tecnologie come AppCache.





Casi d'uso per i lavoratori del servizio

Quindi, cosa ti lasciano fare esattamente i lavoratori dei servizi? I service worker ti consentono di aggiungere funzionalità caratteristiche delle app native alla tua applicazione web. Possono anche fornire un'esperienza normale su dispositivi che non supportano gli operatori del servizio. A volte vengono chiamate app come questa App Web progressive (PWA) .

lo schermo di Windows 10 è capovolto

Di seguito sono elencate alcune delle funzionalità rese possibili dai lavoratori del servizio:





  • Consentire all'utente di continuare a utilizzare l'app (o almeno parti di essa) quando non è più connesso a Internet. I lavoratori del servizio ottengono questo risultato servendo le risorse memorizzate nella cache in risposta alle richieste.
  • Nei browser basati su Chromium, un service worker è uno dei requisiti per l'installazione di un'app Web.
  • Gli operatori di servizio sono necessari affinché la tua applicazione Web sia in grado di implementare le notifiche push.

Il ciclo di vita di un addetto ai servizi

Gli operatori del servizio possono controllare le richieste per un intero sito o solo una parte delle pagine del sito. Una determinata pagina Web può avere un solo operatore di servizio attivo e tutti gli operatori di servizio hanno un ciclo di vita basato su eventi. Il ciclo di vita di un addetto ai servizi è generalmente simile al seguente:

  1. Registrazione e download del lavoratore. La vita di un addetto ai servizi inizia quando viene registrato da un file JavaScript. Se la registrazione ha esito positivo, il lavoratore del servizio viene scaricato e quindi avvia l'esecuzione all'interno di un thread speciale.
  2. Quando viene caricata una pagina controllata dall'operatore del servizio, l'operatore del servizio riceve un evento 'installa'. Questo è sempre il primo evento ricevuto da un lavoratore del servizio ed è possibile configurare un listener per questo evento all'interno del lavoratore. L'evento 'install' viene generalmente utilizzato per recuperare e/o memorizzare nella cache tutte le risorse necessarie al lavoratore del servizio.
  3. Al termine dell'installazione, l'operatore del servizio riceve un evento 'activate'. Questo evento consente al lavoratore di ripulire le risorse ridondanti utilizzate dai precedenti lavoratori del servizio. Se stai aggiornando un addetto ai servizi, l'evento di attivazione si attiverà solo quando è possibile farlo in sicurezza. Questo accade quando non ci sono pagine caricate che utilizzano ancora la vecchia versione di Service worker.
  4. Dopodiché, l'operatore del servizio ha il pieno controllo di tutte le pagine che sono state caricate dopo che è stata registrata con successo.
  5. L'ultima fase del ciclo di vita è la ridondanza, che si verifica quando il service worker viene rimosso o sostituito da una versione più recente.

Come utilizzare Service Workers in JavaScript

L'API Service Worker ( MDN ) fornisce l'interfaccia che consente di creare e interagire con gli operatori del servizio in JavaScript.