En mi caso, después de que el usuario final Publica sus datos nuevos en el servidor, se lo redirige a otra página. Pero cuando el usuario final presiona el botón Atrás, el formulario se rellena previamente con los datos anteriores. Entonces, la página de recarga es necesaria.
Hice una solución para Firefox y otra para Google Chrome. Tienen un comportamiento diferente para mostrar páginas en caché.
Esto evitará que Firefox guarde en caché la página y el botón Atrás traerá la página del servidor.
window.onunload = function(){};
Pero Google Chrome lo hizo de otra manera y la solución anterior no funcionó para mí. Así que hice otra solución para Chrome. Hice una bandera que marcó el formulario como sucio.
En la parte superior de <head>
, antes que cualquier carga, puedo comprobar la cookie
if(document.cookie.match(/my-form=dirty/)) {
document.cookie = "my-form=; expires=-1; path="+document.location.pathname;
window.location.reload();
}
Con una ayuda de jQuery, escribo la cookie cuando el usuario modifique algo
$(document).load(function(){
$(':input').change(function(){
document.cookie = "my-form=dirty; expires=86400000; path="+document.location.pathname;
})
})
bueno saber:
Nota: esta solución no funciona. Al menos no en Chrome y Firefox recientes. –
En cuanto a por qué no funciona: http://stackoverflow.com/questions/10314174/difference-between-pragma-and-cache-control-headers – thomas88wp