2010-11-10 14 views
38

Necesito forzar al navegador para que vuelva a cargar la página anterior desde el servidor cuando el usuario presiona el botón Atrás.Cómo detener Chrome desde el almacenamiento en caché

He añadido lo siguiente a mis cabeceras de respuesta:

Cache-Control: no-cache, must-revalidate 
Expires: -1 

Esto parece funcionar para la mayoría de los navegadores, pero no para Google Chrome que insiste en la devolución de los resultados almacenados en caché.

Entonces, ¿alguien sabe cómo fuerzo al navegador para obtener la página del servidor cuando el usuario presiona el botón Atrás?

Gracias.

+1

Si está interesado en detener el almacenamiento en caché de los contenidos del campo que echar un vistazo a [este] (http://stackoverflow.com/a/2699400/669677)! –

+3

9000 vistas y las modificaciones lo llaman "una situación extraordinariamente estrecha". – AaronLS

Respuesta

34

según this bug report en repo de cromo, los usuarios encuentran que usar no-store en lugar de no-cache lo arreglará en chrome.

+4

error o característica? –

+3

jajaja, vamos a llamarlo 'problema de notación' =] – superfro

+0

Pero, ¿qué pasa con otros navegadores? ¿Se agregarán estas interrupciones a otros navegadores? –

0

Esto no es apropiado, pero quizás podría usar el objeto del historial de Javascript para determinar si la página actual es la última página de la lista. De lo contrario, se presionó el botón Atrás.

Ver esta referencia: http://www.exforsys.com/tutorials/javascript/javascript-history-object-properties-and-methods.html

La verdadera solución, por supuesto, es la estructura de su aplicación de tal manera que el uso de los botones de avance y retroceso/realidad funciona de la manera que se supone que.

+4

No me gustaría implementar esto a menos que no haya otra opción, es un poco hacky para mi gusto. El problema es que la recarga de la página cuando el usuario presiona hacia atrás es la forma en que debería funcionar el botón Atrás. Por ejemplo, si estaba en la banca en línea y me he desconectado, no quiero que la gente presione y vea los detalles de mi cuenta. Me gustaría que la página se vuelva a cargar. Tenemos una situación similar con nuestra aplicación, la información puede haber cambiado, así que tenemos que volver a cargar de forma dinámica. –

+0

Sí, es hackish, y no lo recomiendo, a menos que sea su única opción. Es solo algo en lo que pensé. Sin embargo, debes recordar para qué son esos botones hacia adelante y hacia atrás. Los sitios web se diseñaron originalmente para documentos/páginas, no para aplicaciones. Si bien agregar 'no-store' como lo sugiere superfro es una buena idea, también debe recomendar a los usuarios que cierren su navegador después de cerrar la sesión, como lo hace cualquier otro banco o sitio seguro. – Brad

+0

Lo siento, sonó abrupto. Agradezco el consejo, lo usaré si no encuentro una mejor solución –

Cuestiones relacionadas