Spring GDS 25 Aniversario
Una empresa de logística que envía a 190 países construyó algo para enviarse a sí misma.
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.
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.
Una empresa de logística que envía a 190 países construyó algo para enviarse a sí misma.
Convertir una marca en un negocio que funciona.
Medio millón de personas. Una app. Cero caos.















