Tengo un problema con mi trabajador de servicio personalizado. No parece estar interceptando el primer requerimiento de recuperación cuando la página se carga inicialmente (pero todos los reqs de recuperación posteriores se interceptan correctamente). Sin embargo, si vuelvo a cargar la página, el trabajador del servicio intercepta correctamente todas las solicitudes de recuperación. Entonces, el problema solo existe en la carga inicial de la página.
Este comportamiento de "primera carga" es por diseño. Los ServiceWorkers no pueden interceptar las solicitudes iniciales hasta que ingresan al estado de installing y terminan con el estado activated . Una opción es mostrar primero a los usuarios una página "Instalando...", esperar a que el software se active y luego actualizar la página. El SW puede entonces servir una página de "SW activado". Ver ejemplo: https://fetch-progress.anthum.com/sw-basic/ - sw-simple.js
// INTERCEPT: /, /index.html, /index.htm if ([scope, scope + 'index.html', scope + 'index.htm'].includes(event.request.url)) { event.respondWith(fetch(scope + 'sw-installed.html')) }