Caché de atrás/adelante: ciclo de vida, privacidad y coherencia
Descubre cómo el navegador restaura páginas con BFCache, qué eventos importan y cómo proteger el estado privado sin romper la navegación.
BotBrowser Team
Quieres la documentación estructurada de Plataforma?
Este artículo forma parte de la biblioteca editorial. Para pasos de configuración, material de referencia y actualizaciones continuas, entra en la sección de docs.
El back-forward cache (BFCache) permite restaurar casi al instante una página visitada al volver atrás o adelante. El documento restaurado puede conservar DOM, memoria JavaScript, formularios y estado de la aplicación; no es una recarga normal. La especificación HTML de WHATWG describe el recorrido del historial y la guía BFCache de MDN explica la elegibilidad y los eventos pageshow y pagehide. La especificación Page Visibility de W3C define la señal de visibilidad que acompaña a BFCache; visibilidad no demuestra que el documento haya sido almacenado. BotBrowser ejecuta pruebas autorizadas en BrowserContexts aislados, pero no fuerza BFCache, decide la expulsión del navegador ni define qué debe conservar una aplicación.
TL;DR
- BFCache restaura un documento sin recarga normal;
pageshowypagehideson puntos de evidencia. - Visibilidad, restauración, autenticación y frescura del servidor son comprobaciones distintas.
- BotBrowser repite un fixture autorizado, pero no fuerza la elegibilidad ni garantiza la restauración.
Contenido
- Diseñar para el ciclo de vida
- La privacidad es un límite de estado
- Coherencia tras la restauración
- El papel limitado de BotBrowser
- Conclusión
Diseñar para el ciclo de vida
Al guardar un documento, pagehide puede indicar event.persisted === true; al volver, pageshow puede indicar lo mismo. Son puntos de observación portables: load no vuelve a ejecutarse y un componente puede conservar memoria anterior. Pausa temporizadores, sondeos, medios y observadores costosos cuando la página se oculta o se almacena; reanúdalos en pageshow y vuelve a comprobar datos que pudieron cambiar. Limpia de forma idempotente, porque la página también puede ser expulsada o cerrada.
La privacidad es un límite de estado
BFCache es estado del proceso del navegador, no una sesión del servidor. Una página restaurada puede seguir mostrando un panel privado, un borrador o valores de formulario. En pageshow, verifica autenticación y cuenta antes de mostrar datos sensibles. Al cerrar sesión, revoca primero la sesión del servidor y luego limpia la memoria del cliente. Cache-Control: no-store puede impedir que se almacene un documento, pero no es un borrador universal; pruébalo en los navegadores objetivo. Un origen incrustado administra su propio almacenamiento.
Coherencia tras la restauración
No trates el documento restaurado como si fuera actual. Compara en pageshow una versión, cuenta o token de frescura y revalida solo lo que pueda haber cambiado. Libera una conexión WebSocket antes de crear otra; service workers y shared workers tienen ciclos independientes. Prueba atrás/adelante, navegación entre orígenes, cambio de cuenta en otra pestaña, sesión revocada, registros modificados y una navegación no elegible para BFCache. La restauración no debe repetir envíos ni revelar datos de otra cuenta.
El papel limitado de BotBrowser
BotBrowser ofrece BrowserContexts aislados y perfiles repetibles para pruebas autorizadas de ciclo de vida y privacidad. Dos contextos permiten navegar, revocar una sesión sintética y observar pageshow/pagehide sin compartir cookies ni almacenamiento. BotBrowser no evita políticas de origen, no garantiza elegibilidad BFCache, no resuelve desafíos interactivos, no invalida sesiones del servidor ni elimina registros fuera del contexto. Registra versión del navegador, sistema operativo, proxy y política del sitio.
Lista práctica
- Observa
pagehideypageshow;persistedes una señal, no una promesa. - Pausa y reanuda temporizadores, medios, sockets y observadores una sola vez.
- Comprueba autenticación, cuenta y frescura antes de mostrar estado privado.
- Cubre revocación, cambio de cuenta, cambios de datos y navegación sin BFCache.
- Separa restauración del navegador, cierre de sesión y eliminación de datos.
BFCache mejora el rendimiento, pero exige verificaciones al restaurar. Ese punto de control mantiene la navegación rápida sin perder los límites de privacidad.
Lecturas relacionadas
- Historial y privacidad de Navigation API
- Ciclo de vida y privacidad de la caché de service worker
- Borrado de datos del sitio y límites de cuenta
Conclusión
Trata el documento restaurado como un nuevo punto de verificación: pausa el trabajo, comprueba de nuevo la autorización y la frescura, y separa las observaciones del navegador de las decisiones del servidor.
Fuentes
Artículos Relacionados
Lleva BotBrowser de la investigación a producción
Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.