He escrito una función que volverá a cargar la página sin envío de publicaciones y que también funcionará con hash.
Lo hago agregando/modificando un parámetro GET en la URL llamada reload
actualizando su valor con la marca de tiempo actual en ms.
var reload = function() {
var regex = new RegExp("([?;&])reload[^&;]*[;&]?");
var query = window.location.href.split('#')[0].replace(regex, "$1").replace(/&$/, '');
window.location.href =
(window.location.href.indexOf('?') < 0 ? "?" : query + (query.slice(-1) != "?" ? "&" : ""))
+ "reload=" + new Date().getTime() + window.location.hash;
};
Tenga en cuenta, si desea activar esta función en un atributo href, poner en práctica esta manera: href="javascript:reload();void 0;"
para hacer que funcione, con éxito.
La desventaja de mi solución es que cambiará la URL, por lo que esta "recarga" no es una recarga real, sino que es una carga con una consulta diferente. Aún así, podría adaptarse a sus necesidades como lo hace para mí.
volver a enviar una POST (que es lo que hace una recarga) siempre mostrará esa advertencia. Podría hacer otro POST en lugar de volver a cargar, aunque eso llenaría el historial de los navegadores de los usuarios si lo hace con demasiada frecuencia, y seguirían recibiendo la advertencia si presionan el botón Atrás. –
Duplicado: http://stackoverflow.com/questions/1073593/php-reload-page-without-posting-data/1073732#1073732 – Quentin