Come forzare Internet Explorer (IE) a ricaricare VERAMENTE la pagina?


153

Quando utilizzo Internet Explorer 8 per testare la mia applicazione Web, trovo spesso che non ricarica la pagina, quindi non vedo le mie modifiche. Ciò ha comportato un sacco di tempo sprecato e frustrazione chiedendosi perché la mia correzione "non ha funzionato" - quando in realtà il browser non ha mai caricato la versione fissa.

Ho provato il pulsante Aggiorna. Ho provato F5, Control- F5, Control- R, Control- Shift- R, tenendo premuto Controlfacendo clic sul pulsante Aggiorna, tutto ciò a cui potevo pensare - in realtà non carica i nuovi contenuti dal server. L'ho confermato con Fiddler.

Come faccio a dire a IE " Non mi interessa cosa pensi di aver memorizzato nella cache, voglio ricaricare la pagina - no davvero, intendo questa volta, onesto-a-Dio, voglio che tu vada effettivamente sul server e scarica di nuovo tutto "?


2
Utilizzare una finestra di navigazione privata, forse?
Josh Lee,

3
È possibile che il tuo server web stia servendo la vecchia pagina (via cache) invece della nuova versione? Non importa quante volte ricarichi in quel caso.
Michael Todd,

1
Michael, no, ho verificato in Fiddler che IE non sta ottenendo i contenuti della pagina dal server.
EMP,

Control + F5 supera la cache, è strano se non lo fa ....
Tamara Wijsman

2
La migliore formulazione di una domanda che ho incontrato finora su StackExchange!
user785529

Risposte:


125
  1. Seleziona Strumenti >> Opzioni Internet .
  2. Fai clic sul pulsante Impostazioni in Cronologia esplorazioni .
  3. Seleziona il pulsante di opzione Ogni volta che visito la pagina Web .
  4. Fai clic su OK per chiudere la finestra di dialogo Impostazioni.
  5. Fai clic su OK per chiudere la finestra di dialogo Opzioni Internet.

3
Se questo è quello che hai fatto, contrassegnalo come risposta
Earlz,

34
Potrebbe danneggiare le prestazioni di navigazione generali, ma solo se esegui la navigazione generale con IE ...
Joel Mueller,

3
Ev: il lato rivolto all'utente in genere viene risolto modificando gli URL per tutti gli script e i fogli di stile ogni volta che si tocca il codice, in genere aggiungendo un ?version-numbersuffisso di stringa di query.
Bobince,

4
"Ogni volta che visito la pagina web" probabilmente non fa quello che pensi che faccia. Vedi fiddler2.com/redir/?id=httpperf
EricLaw il

6
Sono d'accordo con @EricLaw, se usi Fiddler vedrai che i file associati alla pagina a volte non vengono ricaricati anche quando è impostato "Ogni volta che visito la pagina web". Utilizzare il menu della barra degli strumenti di IE: Cache> Aggiorna sempre dal server o il pulsante Cancella cache in Fiddler.
Phillip Ngan

43

Poiché si afferma che IE8 è il browser, è possibile premere F12per aprire gli strumenti di sviluppo e selezionare il menu Cache in alto, quindi aggiornare sempre dal server per bypassare la cache.

In breve, premereF12 . Fare clic su Cache -> Aggiorna sempre dal server

Puoi semplicemente svuotare la cache anche qui, se questa è l'azione desiderata. L'opzione di aggiornamento sempre non è un'opzione globale e non ostacolerà le prestazioni complessive in IE.

IE7 ha anche strumenti di sviluppo, ma devono essere installati separatamente. È inoltre possibile utilizzare gli strumenti di sviluppo IE8 per eseguire il browser in modalità IE7.


+1 per risolvere questo problema senza usare un'opzione globale.
Marcus Riemer,

Simile a qui , che non aggiorna sempre tutto il contenuto. E non so nemmeno che il ricaricamento sia buono su tutti gli URL: ogni finestra sembra avere il proprio F12 a volte. Questo è un modo più completo di fare se, se hai accesso al javascript include.
ruffin,

1
Come si fa in IE 11? Non c'è alcuna opzione cache che posso trovare.
David Thielen,

4
In IE 11 questa opzione è sotto F12 -> Rete -> 3a icona da sinistra.
Den

22

Ctrl+ F5in IE ricarica la pagina ignorando la cache


26
No, non lo fa. So che ignora la cache qualche volta, ma non sempre.
EMP,

16
Ctrl + f5 ricarica sempre la pagina dal server. Ciò che non necessariamente fa è ricaricare i file extra a cui fa riferimento la pagina

2
Abbastanza giusto - ma ne ho bisogno per ricaricare TUTTO.
EMP,

1
CTRL + F5 dovrebbe eseguire un aggiornamento completo della pagina e di tutte le sue risorse. Le chiamate effettuate tramite XMLHTTPRequest in un secondo momento potrebbero essere memorizzate nella cache (se non le si desidera memorizzare nella cache, inviare le intestazioni appropriate senza cache). L'unica avvertenza è che se la pagina in questione è XML, viene effettivamente caricata tramite MSXML e DocHost NON rispetta correttamente CTRL + Aggiorna.
EricLaw,

3
ctrl + f5 non ricarica sempre tutto dal server. Nei miei test javascript contenuto nel file html non si ricarica dopo aver premuto ctrl-f5 anche se la pagina è cambiata.
rcarver

18

IE è molto desideroso di memorizzare nella cache le pagine, anche quando glielo dici di non utilizzare le intestazioni della cache. Microsoft KB 234067 spiega gli incantesimi necessari. In breve, è necessario fornire le seguenti intestazioni.

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

L'impostazione Expires = -1(come raccomandato nell'articolo KB) dovrebbe funzionare per la maggior parte dei framework; i browser devono trattare i formati di data non validi come in passato ( RFC 2616 ).

In .NET, è possibile farlo su una granularità pagina per pagina utilizzando questo set di metodi prima di chiamare la pagina 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();

vedi: http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ Funziona bene con MVC3.0.


1
Falso. IE6 + rispetta pienamente tutte le intestazioni che vietano la cache. fiddler2.com/redir/?id=httpperf
EricLaw

Va benissimo, ma non aiuta a rispondere alla domanda.
Matthias Urlichs,

6

La scheda Rete della barra degli strumenti dello sviluppatore Web ha un pulsante per cancellare facilmente la cache. Di solito lo uso nel caso che descrivi.

Non è l'ideale, dal momento che potresti non voler svuotare l'intera cache, ma poiché non utilizzo IE per la navigazione generale, funziona per me.


4

Questo succede ancora in IE9. Sorprendentemente, la risposta è: Ctrl- ShiftPulsante Aggiorna


Funziona diversamente dal pulsante Ctrl-Aggiorna?
Jon Onstott,

3

Per inciso, il problema potrebbe esistere anche per i visitatori del tuo sito web. Ho visto la seguente idea in un libro AJAX ...

Usa PHP per aggiungere un token casuale all'URL corrente in modo che il browser sia indotto a pensare che sia una pagina separata.


Rende brutti gli URL, però.
LawrenceC,

2

Ho avuto lo stesso problema da solo. Credo che l'unico modo per farlo sia svuotare la cache (Sicurezza -> Elimina cronologia esplorazioni). Seleziona solo "File temporanei Internet".

Spero che sia di aiuto.


2

Tenere premuto il tasto alto ctrlmentre si fa clic sul pulsante Aggiorna.


1

Sono d'accordo che l'aggiunta di un token casuale all'URL sia la soluzione più affidabile e una volta implementata, l'utente non deve fare nulla.

A parte l'approccio token casuale, ciò che tendo sempre a forzare un ricaricamento completo (richiesta) della pagina e di tutti i suoi file dipendenti, posiziono il cursore alla fine dell'URL e premo Invio. Funziona ogni volta ... e io uso IE 8.


1

F12-> CTRL+ Rè leggermente più veloce per IE9 +. Come è già stato detto, IE non cancella la cache in modo molto intelligente come Chrome.


1

So che questo può sembrare un po 'strano ... ma una cosa che ho notato di recente, è che a volte ottieni risultati diversi a seconda di COME "aggiorni". Ho visto il seguente comportamento:

F5> carica dalla cache senza aggiornamento,
Alt+ D, ENTER> aggiorna davvero ignorando la cache.
( Alt+ Dpuò essere sostituito facendo clic sulla barra degli indirizzi)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.