Tengo una insignia de "elementos nuevos" en una página que deseo actualizar de inmediato cuando la página se carga desde la memoria caché (es decir, al presionar "Atrás" o "Adelante" para volver a esta página). Cuál es la mejor manera de lograr esto?¿Mi página está cargada desde el caché del navegador?
La configuración es bastante simple. El diseño de la aplicación busca nuevos elementos cada 8 segundos y actualiza la insignia + lista de elementos en consecuencia.
$(function() {
setInterval(App.pollForNewItems, 8000);
});
Cuando alguien navega fuera de esta página para mirar los detalles de un elemento, pueden pasar muchas cosas. Las cosas son "nuevas" hasta el cualquier usuario de las ha visto, y la aplicación probablemente tendrá varios usuarios usándola simultáneamente (el tipo de flujo de trabajo usado para un call center o tickets de soporte).
Para asegurarse de que las placas están siempre al día, que tengo:
$(window).bind('focus load', function (event) {
App.pollForNewItems();
});
..Y aunque esto funciona, la votación para los nuevos artículos en 'carga' sólo es útil cuando la página se carga desde el caché ¿Existe una manera confiable de navegador cruzado para saber si una página se está cargando desde el caché?
no dependería del servidor y el cliente se sincronicen particularmente bien:/ – Matchu
El problema con esto es que usted está asumiendo sincronización de relojes. El tiempo en JS está determinado por el tiempo de la computadora local, que puede diferir significativamente de la hora del servidor. – Yahel
Buenos puntos, actualizaré para usar UTC. – jball