Logo de Dallonses

Service worker

Què és un service worker?

Un service worker és un script que el navegador executa en segon pla, separat de la pàgina web, actuant com un proxy programable entre la pàgina i la xarxa. Com que se situa en aquesta posició, pot interceptar les peticions de xarxa i decidir com respondre-les: des de la xarxa, des d'una caché que controla, o una barreja de totes dues. Corre fins i tot quan la pàgina està tancada, que és el que fa possible el comportament en segon pla a la web.

És el motor darrere de les Progressive Web Apps. Un service worker és el que permet a una web app continuar funcionant sense connexió, servint pàgines i recursos en caché quan la xarxa desapareix. Impulsa les notificacions push, deixa que l'app sincronitzi dades en segon pla quan torna la connexió i dóna al desenvolupador control fi sobre les estratègies de caché. Una PWA de notícies, per exemple, pot fer servir un service worker per posar en caché els últims articles i que un viatger pugui continuar llegint quan el tren s'endinsa en un túnel.

Ve amb regles estrictes. Els service workers només corren sobre HTTPS, per seguretat, i tenen un cicle de vida definit d'instal·lació, activació i fetch que cal manejar bé o serveixes contingut obsolet als usuaris. El cacheig és potent i fàcil de fer malament. Ben fet, la pàgina se sent instantània i sobreviu a una connexió caiguda. Fet amb descuit, els usuaris reben recursos vells i es pregunten per què no s'actualitza res.

Service workers a Dallonses

Construïm amb service workers quan un projecte necessita de debò el que ofereixen: ús offline, càrregues repetides instantànies o push. Un client el personal de camp del qual treballava en llocs amb cobertura irregular necessitava que la seva eina continués funcionant passés el que passés. Vam construir un service worker que posava en caché l'app shell i les dades de les quals depenien aquests usuaris, perquè l'experiència aguantés quan la connexió no, i després sincronitzés net tan bon punt tornava.

L'estratègia de caché és on la feina amb service workers es guanya o es perd, així que tractem el cicle de vida i les regles de caché com una cosa a dissenyar, no a afegir a posteriori. En el nostre desenvolupament web i d'aplicacions web progressives, això vol dir decidir de manera deliberada què posar en caché, quan refrescar-ho i com arriben les actualitzacions a l'usuari, perquè ningú acabi mirant una pantalla obsoleta. Comportament offline fiable, i sense sorpreses quan es publica contingut nou.

Necessites una web app que funcioni quan la connexió no? Construïm-la per aguantar offline.

Parla amb nosaltres sobre PWAs

Serveis relacionats


Preparat per a traballar junts?

Reserva una reunió
Aymón sostenint una revista Tools davant de la seva cara
Ari treballant en un portàtil a l'aire lliure envoltada de plantes
Vista superior d'un escriptori de fusta amb teclat, ratolí i auriculars
Il·lustració dibuixada a mà d'una mà chasquejant els dits
Nico recolzat contra un dispensador d'aigua al costat d'un extintor
Primer pla d'un ordinador obert amb placa de circuit i components sobre un escriptori de fusta
Bernat i Andreu col·laborant en un escriptori amb monitors i un portàtil
Il·lustració dibuixada a mà d'una mà oberta saludant
Aymón sostenint una revista Tools davant de la seva cara
Ari treballant en un portàtil a l'aire lliure envoltada de plantes
Vista superior d'un escriptori de fusta amb teclat, ratolí i auriculars
Il·lustració dibuixada a mà d'una mà chasquejant els dits
Nico recolzat contra un dispensador d'aigua al costat d'un extintor
Primer pla d'un ordinador obert amb placa de circuit i components sobre un escriptori de fusta
Bernat i Andreu col·laborant en un escriptori amb monitors i un portàtil
Il·lustració dibuixada a mà d'una mà oberta saludant