Forçar um recarregamento de página no Chrome usando JavaScript [no cache]
Preciso recarregar uma página usando JavaScript e garantir que ela não seja extraída do cache do navegador, mas recarregue a página do servidor. [Como os elementos da página terão mudado nesse ínterim]
No IE e no FF, descobri que o código a seguir funcionava bem;
window.location.reload(true);
No entanto, não funciona no Chrome ou no Safari.
Eu tentei o seguinte, mas também sem sucesso;
window.location.replace(location.href);
document.location.reload(true);
document.location.replace(location.href);
Existe uma solução para este problema?
Resultados
Depois de examinar isso, descobri que esse problema é o manuseio do protocolo HTTP;
O Chrome envia uma solicitação comPragma: no-cache
Campo HTTPO servidor responde comLast-Modified: DATE1
campoJS usalocation.reload(true)
forçar um recarregamento do servidor e não do cacheO Chrome envia uma solicitação comIf-Modified-Since: DATE1
campoO servidor responde comHTTP Status 304 Not Modified
O aplicativo do servidor tem um erro por não notar a mudança de estado no conteúdo dinâmico da página e, portanto, não retornar um200
. No entanto, o Chrome / WebKit é o único navegador que envia umIf-Modified-Since
campo quando o JSlocation.reload(true)
é chamado.
Eu pensei que eu iria colocar minhas descobertas aqui no caso de alguém se deparar com o mesmo problema.