2009-12-09 23:52:52 +0000 2009-12-09 23:52:52 +0000
155
155

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

Quando uso o Internet Explorer 8 para testar a minha aplicação web, muitas vezes descubro que não recarrega a página, por isso não vejo as minhas alterações. Isto resultou numa grande perda de tempo e frustração ao perguntar-me porque é que a minha correcção “não funcionou” - quando na verdade o browser nunca carregou a versão corrigida.

Eu tentei o botão Refresh. Experimentei F5, Control-F5, Control-R, Control-Shift-R, mantendo o Controlo enquanto clicava no botão Refresh, tudo o que conseguia pensar - na verdade não carregava os novos conteúdos do servidor. Confirmei isto com o Fiddler.

Como é que digo ao IE “ Não me interessa o que pensas que tens em cache, quero reload a página - não, na verdade, eu significo-o desta vez, honesto para Deus, quero que actualmente vás ao servidor e descarregues tudo outra vez”?

Respostas (12)

126
126
126
2009-12-09 23:57:24 +0000
  1. Seleccione Ferramentas >> Opções de Internet.
  2. Clique no botão Configurações* em Histórico de navegação.
  3. Seleccione o botão de rádio Sempre que visite a página web.
  4. Clique em OK* para fechar o diálogo Configurações.
  5. Clique em OK* para fechar o diálogo Opções da Internet.
43
43
43
2010-07-08 18:30:53 +0000

Uma vez que se afirma que o IE8 é o browser, pode pressionar F12 para abrir as ferramentas de desenvolvimento e seleccionar o menu Cache no topo e depois actualizar sempre a partir do servidor para evitar a cache.

Em resumo, Pressione F12. Clique Cache -> Always Refresh from Server

Pode simplesmente limpar a sua cache aqui também, se essa for a acção desejada. A opção de refrescar sempre não é uma opção global e não irá prejudicar o desempenho global no IE.

O IE7 também tem ferramentas de desenvolvimento, mas devem ser instaladas separadamente. Também pode utilizar as ferramentas de desenvolvimento do IE8 para executar o browser no modo IE7.

22
22
22
2009-12-10 00:38:04 +0000

Ctrl+F5 no IE recarrega a página, ignorando a cache

19
19
19
2009-12-10 01:31:08 +0000

O IE está muito ansioso por páginas em cache, mesmo quando se diz para não o fazer através de cabeçalhos de cache. O Microsoft KB 234067 explica os benefícios necessários. Em resumo, precisa de entregar os seguintes cabeçalhos.

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

Setting Expires = -1 (como recomendado no artigo KB) deve funcionar para a maioria das frameworks; os browsers são necessários para tratar formatos de data inválidos como sendo no passado RFC 2616 ).

Em . NET, pode fazê-lo numa granularidade página a página utilizando este conjunto de métodos antes de chamar a página 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();

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

6
6
6
2009-12-09 23:58:04 +0000

O separador Rede da barra de ferramentas do programador Web tem um botão para limpar facilmente a cache. Normalmente uso isso no caso que descreve.

Não é o ideal, uma vez que pode não querer limpar toda a sua cache, mas como não uso o IE para navegação geral, funciona para mim.

4
4
4
2011-04-01 03:47:03 +0000

Isto ainda acontece no IE9. Surpreendentemente, a resposta é Ctrl-Shift-Refresh button*.

3
3
3
2009-12-10 00:14:40 +0000

A propósito, o problema existirá possivelmente também para os seus telespectadores. Eu vi a seguinte ideia num livro AJAX…

Use PHP para adicionar uma ficha aleatória à URL actual para que o browser seja enganado a pensar que é uma página separada.

2
2
2
2009-12-09 23:58:50 +0000

Eu próprio já tive o mesmo problema. Creio que a única forma de o fazer é limpar a cache (Segurança -> Eliminar Histórico de Navegação). Verifique apenas “Ficheiros Temporários da Internet”.

Espero que isto ajude.

2
2
2
2010-11-17 15:36:29 +0000

Mantenha pressionada a tecla alt ou ctrl ao clicar no botão refresh.

1
1
1
2009-12-10 01:49:44 +0000

Sei que isto pode parecer um pouco estranho… mas uma coisa que tenho notado ultimamente, é que, por vezes, obtemos resultados diferentes, dependendo de COMO “refrescamos”. Eu vi o seguinte comportamento:

F5 > cargas da cache sem refrescar, Alt+D, ENTER > really refreshes bypassing the cache. (Alt+D pode ser substituído por clicar na barra de endereço)

1
1
1
2012-08-22 18:35:56 +0000

F12 -> CTRL+R é ligeiramente mais rápido para o IE9+. Como já foi referido, o IE não limpa a cache de forma muito inteligente, como o Chrome faz.

1
1
1
2010-08-12 02:58:55 +0000

Concordo que adicionar um token aleatório à url é a solução mais fiável e uma vez implementado o utilizador não tem de fazer nada.

Para além da abordagem do token aleatório o que eu tendo sempre a fazer para forçar uma recarga completa (pedido) da página e de todos os seus ficheiros dependentes, apenas coloco o meu cursor no fim da url e carrego no Enter. Funciona sempre… e eu uso o IE 8.