fix: version 2.18.3 -- F5 normal ya no muestra la version anterior tras actualizar

El service worker servia index.html desde su precache en cada navegacion.
Navegaciones pasan a NetworkFirst (cache solo offline), serve.json agrega
no-cache a html/sw.js e immutable a /assets, y se chequean actualizaciones
del SW cada 30 min y al volver a la pestaña.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-10-21 08:34:18 -05:00
parent bcb9c9d714
commit 22071b344a
7 changed files with 52 additions and 4 deletions
+11 -1
View File
@@ -9,7 +9,17 @@ import './styles/app.css';
installGlobalErrorReporter();
// autoUpdate: toma la version nueva del service worker sola en cuanto esta lista, sin pedirle
// nada al usuario (no hay riesgo de mostrar una version vieja de la UI por mucho tiempo).
registerSW({ immediate: true });
registerSW({
immediate: true,
// Ademas de al cargar, revisa si hay version nueva cada 30 min y al volver a la pestaña --
// asi una pestaña abierta todo el dia no se queda en la version anterior.
onRegisteredSW(_url, registration) {
if (!registration) return;
const check = () => registration.update().catch(() => {});
setInterval(check, 30 * 60 * 1000);
document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'visible') check(); });
},
});
// skipWaiting+clientsClaim (activados por autoUpdate) hacen que el service worker nuevo tome
// control solo, pero eso NO refresca la pagina ya abierta -- el usuario seguia viendo JS/CSS