Como forçar o Internet Explorer (IE) a recarregar REALMENTE a página?


154

Ao usar o Internet Explorer 8 para testar meu aplicativo Web, muitas vezes acho que ele não recarrega a página; portanto, não vejo minhas alterações. Isso resultou em muito desperdício de tempo e frustração, perguntando-me por que minha correção "não funcionou" - quando, na verdade, o navegador nunca carregou a versão corrigida.

Eu tentei o botão Atualizar. Eu tentei F5, Control- F5, Control- R, Control- Shift- R, mantendo Controlpressionado enquanto clica no botão Atualizar, tudo o que eu conseguia pensar - na verdade, ele não carrega o novo conteúdo do servidor. Eu confirmei isso com o Fiddler.

Como digo ao IE " Não me importo com o que você acha que armazenou em cache, quero recarregar a página - não, sério, desta vez, sincero com Deus, quero que você vá realmente ao servidor e baixar tudo de novo "?


2
Use uma janela de navegação privada, talvez?
21139 Josh Lee

3
É possível que seu servidor Web esteja servindo a página antiga (via cache) em vez da nova versão? Não importa quantas vezes você recarrega nesse caso.
22711 Michael Todd

1
Michael, não, verifiquei no Fiddler que o IE não está obtendo o conteúdo da página do servidor.
EMP

Control + F5 vai passado o cache, é estranho se isso não acontecer ....
Tamara Wijsman

2
Melhor redação de uma pergunta que encontrei até agora no StackExchange!
user785529

Respostas:


126
  1. Selecione Ferramentas >> Opções da Internet .
  2. Clique no botão Configurações no histórico de navegação .
  3. Selecione o botão de opção Toda vez que visito a página da web .
  4. Clique em OK para fechar a caixa de diálogo Configurações.
  5. Clique em OK para fechar a caixa de diálogo Opções da Internet.

3
Se é isso que você fez, marcá-la como a resposta
Earlz

34
Pode prejudicar o desempenho geral de navegação, mas só se você fizer a sua navegação em geral com o IE ...
Joel Mueller

3
Ev: o lado voltado para o usuário disso geralmente é corrigido alterando os URLs de todos os scripts e folhas de estilo toda vez que você toca no código, geralmente adicionando um ?version-numbersufixo de string de consulta.
bobince

4
"Toda vez que visito a página da web" provavelmente não faz o que você pensa que faz. Veja fiddler2.com/redir/?id=httpperf
EricLaw

6
Concordo com o @EricLaw, se você usar o Fiddler, verá que os arquivos associados à página às vezes não são recarregados, mesmo quando "Toda vez que eu visito a página da Web" está definido. Use o menu da barra de ferramentas do IE: Cache> Sempre atualize do servidor ou o botão Limpar cache no Fiddler.
precisa

43

Como é declarado que o IE8 é o navegador, você pode pressionar F12para abrir as ferramentas de desenvolvimento e selecionar o menu Cache na parte superior e sempre atualizar do servidor para ignorar o cache.

Em resumo, pressioneF12 . Clique em Cache -> Atualizar sempre do servidor

Você pode simplesmente limpar seu cache aqui também, se essa for a ação desejada. A opção sempre atualizar não é uma opção global e não prejudicará o desempenho geral no IE.

O IE7 também possui ferramentas de desenvolvimento, mas elas devem ser instaladas separadamente. Você também pode usar as ferramentas de desenvolvimento do IE8 para executar o navegador no modo IE7.


+1 para resolver isso sem usar uma opção global.
Marcus Riemer

Semelhante a aqui , isso ainda nem sempre atualiza todo o conteúdo. E também não sei se esse recarregamento é bom em URLs - cada janela parece ter seu próprio F12 às vezes. Esta é uma maneira mais completa de fazer se, se você tiver acesso ao javascript include.
Ruffin

1
Como você faz isso no IE 11? Não há opção de cache que eu possa encontrar.
precisa

4
No IE 11, esta opção está em F12 -> Rede -> 3º ícone da esquerda.
Den

22

Ctrl+ F5no IE recarrega a página ignorando o cache


26
Não, não faz. Eu sei que ignora o cache algumas vezes, mas não o tempo todo.
EMP

16
Ctrl + f5 sempre recarrega a página do servidor. O que não significa necessariamente fazer é recarregar os arquivos extras que referências de página

2
Justo - mas eu preciso recarregar TUDO.
EMP

1
CTRL + F5 deve executar uma atualização completa da página e de todos os seus recursos. As chamadas feitas via XMLHTTPRequest mais tarde podem ser armazenadas em cache (se você não quiser que elas sejam armazenadas em cache, envie cabeçalhos sem cache apropriados). A única ressalva é que, se a página em questão é XML, ela está realmente sendo carregada via MSXML e o DocHost NÃO respeita CTRL + Refresh corretamente.
precisa saber é o seguinte

3
ctrl + f5 nem sempre recarrega tudo do servidor. Nos meus testes, o javascript contido no arquivo html não é recarregado após pressionar ctrl-f5, mesmo que a página tenha sido alterada.
precisa saber é o seguinte

18

O IE está muito ansioso para armazenar em cache as páginas, mesmo quando você diz para não usar os cabeçalhos de cache. O Microsoft KB 234067 explica os encantamentos necessários. Em resumo, você precisa entregar os seguintes cabeçalhos.

Pragma: no-cache
Cache-Control: no-cache
Expires: <some time in the past>

A configuração Expires = -1(conforme recomendado no artigo da KB) deve funcionar para a maioria das estruturas; Os navegadores são obrigados a tratar os formatos de data inválidos como antigos ( RFC 2616 ).

No .NET, você pode fazer isso em uma granularidade de página a página usando este conjunto de métodos antes de chamar a página da Web:

HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();

consulte: http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ Funciona bem para o MVC3.0.


1
Falso. O IE6 + respeita totalmente todos os cabeçalhos que proíbem o cache. fiddler2.com/redir/?id=httpperf
EricLaw

Está tudo muito bem, mas não ajuda a WRT a pergunta.
Matthias Urlichs

6

A guia Rede da barra de ferramentas do desenvolvedor da web possui um botão para limpar facilmente o cache. Eu costumo usar isso no caso que você descreve.

Não é o ideal, pois você pode não querer limpar todo o cache, mas como eu não uso o IE para navegação geral, ele funciona para mim.


4

Isso ainda acontece no IE9. Surpreendentemente, a resposta é Ctrl- Shiftbotão - Atualizar


Isso funciona de maneira diferente do botão Ctrl-Refresh?
Jon Onstott

3

Aliás, o problema possivelmente também existirá para os visualizadores do seu site. Vi a seguinte idéia em um livro AJAX ...

Use o PHP para adicionar um token aleatório à URL atual, para que o navegador seja levado a pensar que é uma página separada.


Torna os URLs feios, no entanto.
LawrenceC

2

Eu já tive o mesmo problema. Acredito que a única maneira de fazer isso é limpar o cache (Segurança -> Excluir histórico de navegação). Marque apenas "Arquivos temporários da Internet".

Espero que isto ajude.


2

Mantenha pressionada a tecla altou ctrlenquanto clica no botão Atualizar.


1

Concordo que adicionar um token aleatório ao URL é a solução mais confiável e, uma vez implementado, o usuário não precisa fazer nada.

Além da abordagem de token aleatório, o que costumo fazer para forçar uma recarga completa (solicitação) da página e de todos os seus arquivos dependentes, basta colocar meu cursor no final do URL e pressionar Enter. Funciona toda vez ... e eu uso o IE 8.


1

F12-> CTRL+ Ré um pouco mais rápido para o IE9 +. Como as pessoas mencionaram, o IE não limpa o cache de maneira muito inteligente, como o Chrome faz.


1

Eu sei que isso pode parecer um pouco estranho ... mas uma coisa que eu notei ultimamente é que às vezes você obtém resultados diferentes, dependendo de como você "atualiza". Eu já vi o seguinte comportamento:

F5> carrega do cache sem atualização,
Alt+ D, ENTER> realmente atualiza ignorando o cache.
( Alt+ Dpode ser substituído com o clique na barra de endereço)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.