Logo de Dallonses

Service worker

¿Qué es un service worker?

Un service worker es un script que el navegador ejecuta en segundo plano, separado de la página web, actuando como un proxy programable entre la página y la red. Como se sitúa en esa posición, puede interceptar las peticiones de red y decidir cómo responderlas: desde la red, desde una caché que controla, o una mezcla de las dos. Corre incluso cuando la página está cerrada, que es lo que hace posible el comportamiento en segundo plano en la web.

Es el motor detrás de las Progressive Web Apps. Un service worker es lo que permite a una web app seguir funcionando sin conexión, sirviendo páginas y recursos cacheados cuando la red desaparece. Impulsa las notificaciones push, deja que la app sincronice datos en segundo plano cuando vuelve la conexión y da al desarrollador control fino sobre las estrategias de caché. Una PWA de noticias, por ejemplo, puede usar un service worker para cachear los últimos artículos y que un viajero pueda seguir leyendo cuando el tren se mete en un túnel.

Viene con reglas estrictas. Los service workers solo corren sobre HTTPS, por seguridad, y tienen un ciclo de vida definido de instalación, activación y fetch que hay que manejar bien o sirves contenido obsoleto a los usuarios. El cacheo es potente y fácil de hacer mal. Bien hecho, la página se siente instantánea y sobrevive a una conexión caída. Hecho con descuido, los usuarios reciben recursos viejos y se preguntan por qué nada se actualiza.

Service workers en Dallonses

Construimos con service workers cuando un proyecto necesita de verdad lo que ofrecen: uso offline, cargas repetidas instantáneas o push. Un cliente cuyo personal de campo trabajaba en lugares con cobertura irregular necesitaba que su herramienta siguiera funcionando pasara lo que pasara. Construimos un service worker que cacheaba el app shell y los datos de los que dependían esos usuarios, para que la experiencia aguantara cuando la conexión no, y luego sincronizara limpio en cuanto volvía.

La estrategia de caché es donde el trabajo con service workers se gana o se pierde, así que tratamos el ciclo de vida y las reglas de caché como algo a diseñar, no a añadir a posteriori. En nuestro desarrollo web y de aplicaciones web progresivas, eso significa decidir de forma deliberada qué cachear, cuándo refrescarlo y cómo llegan las actualizaciones al usuario, para que nadie acabe mirando una pantalla obsoleta. Comportamiento offline fiable, y sin sorpresas cuando se publica contenido nuevo.

¿Necesitas una web app que funcione cuando la conexión no? Construyámosla para aguantar offline.

Habla con nosotros sobre PWAs

Servicios relacionados


¿Listo para trabajar juntos?

Reservar una reunión
Aymón sosteniendo una revista Tools frente a su cara
Ari trabajando en una laptop al aire libre rodeado de plantas
Vista superior de un escritorio de madera con teclado, ratón y auriculares
Ilustración dibujada a mano de una mano chasqueando los dedos
Nico recostado contra un dispensador de agua junto a un extintor de incendios
Primer plano de una computadora abierta con placa de circuito y componentes en un escritorio de madera
Bernat y Andreu colaborando en un escritorio con monitores y una laptop
Ilustración dibujada a mano de una mano abierta saludando
Aymón sosteniendo una revista Tools frente a su cara
Ari trabajando en una laptop al aire libre rodeado de plantas
Vista superior de un escritorio de madera con teclado, ratón y auriculares
Ilustración dibujada a mano de una mano chasqueando los dedos
Nico recostado contra un dispensador de agua junto a un extintor de incendios
Primer plano de una computadora abierta con placa de circuito y componentes en un escritorio de madera
Bernat y Andreu colaborando en un escritorio con monitores y una laptop
Ilustración dibujada a mano de una mano abierta saludando