Wie erzwinge ich, dass Internet Explorer (IE) die Seite WIRKLICH neu lädt?

154

Wenn ich Internet Explorer 8 zum Testen meiner Webanwendung verwende, wird die Seite häufig nicht neu geladen, sodass meine Änderungen nicht angezeigt werden. Dies hat zu viel Zeitverschwendung und Frustration geführt und sich gefragt, warum mein Fix "nicht funktioniert" hat - obwohl der Browser die feste Version nie geladen hat.

Ich habe versucht, die Schaltfläche Aktualisieren. Ich habe versucht F5, Control- F5, Control- R, Control- Shift- R, Controlwährend ich auf die Schaltfläche "Aktualisieren" klicke, alles, was mir einfällt, zu halten - der neue Inhalt wird nicht wirklich vom Server geladen. Ich habe das mit Fiddler bestätigt.

Wie sage ich IE " Es ist mir egal, was Sie denken, dass Sie zwischengespeichert haben, ich möchte die Seite neu laden - nein wirklich, ich meine es diesmal, ehrlich zu Gott, ich möchte, dass Sie tatsächlich zum Server gehen und alles nochmal runterladen "?

EMP
quelle
2
Vielleicht ein privates Browserfenster verwenden?
Josh Lee
3
Ist es möglich, dass Ihr Webserver die alte Seite (über den Cache) anstelle der neuen Version bereitstellt? Es spielt keine Rolle, wie oft Sie in diesem Fall neu laden.
Michael Todd
1
Michael, nein, ich habe in Fiddler überprüft, dass der IE den Seiteninhalt nicht vom Server erhält.
EMP
Strg + F5 geht am Cache vorbei, es ist merkwürdig, wenn nicht ....
Tamara Wijsman
2
Beste Formulierung einer Frage, die ich bisher bei StackExchange gefunden habe!
User785529

Antworten:

126
  1. Wählen Sie Extras >> Internetoptionen .
  2. Klicken Sie im Browserverlauf auf die Schaltfläche Einstellungen .
  3. Aktivieren Sie das Optionsfeld Bei jedem Besuch der Webseite .
  4. Klicken Sie auf OK , um das Dialogfeld Einstellungen zu schließen.
  5. Klicken Sie auf OK , um das Dialogfeld Internetoptionen zu schließen.
Gonzalo
quelle
3
Wenn dies das ist, was Sie getan haben, markieren Sie es als die Antwort
Earlz
34
Es kann die allgemeine Browsing-Leistung beeinträchtigen, aber nur, wenn Sie Ihr allgemeines Surfen mit IE tun ...
Joel Mueller
3
Ev: Die dem Benutzer zugewandte Seite wird normalerweise durch Ändern der URLs für alle Skripte und Stylesheets bei jedem Berühren des Codes korrigiert, normalerweise durch Hinzufügen eines ?version-numberSuffixes für Abfragezeichenfolgen.
Bobince
4
"Jedes Mal, wenn ich die Webseite besuche" macht wahrscheinlich nicht das, was Sie denken. Siehe fiddler2.com/redir/?id=httpperf
EricLaw
6
Ich bin mit @EricLaw einverstanden. Wenn Sie Fiddler verwenden, werden die mit der Seite verknüpften Dateien manchmal nicht neu geladen, auch wenn "Jedes Mal, wenn ich die Webseite besuche" eingestellt ist. Verwenden Sie das IE-Symbolleistenmenü: Cache> Immer vom Server aktualisieren oder die Schaltfläche Cache löschen in Fiddler.
Phillip Ngan
43

Da angegeben wird, dass IE8 der Browser ist, können Sie drücken F12, um die Entwicklungstools zu öffnen und das Menü Cache oben auszuwählen. Anschließend können Sie immer eine Aktualisierung vom Server zum Bypass-Cache durchführen.

Kurz gesagt: Drücken SieF12 . Klicken Sie auf Cache -> Immer vom Server aktualisieren

Sie können hier auch einfach Ihren Cache leeren, wenn dies die gewünschte Aktion ist. Die Option "Immer aktualisieren" ist keine globale Option und beeinträchtigt die Gesamtleistung im Internet Explorer nicht.

IE7 verfügt auch über Entwicklungstools, die jedoch separat installiert werden müssen. Sie können auch die IE8-Entwicklungstools verwenden, um den Browser im IE7-Modus auszuführen.

Brandon
quelle
+1, um dies zu lösen, ohne eine globale Option zu verwenden.
Marcus Riemer
Ähnlich wie hier wird der gesamte Inhalt immer noch nicht aktualisiert. Und ich weiß auch nicht, dass das Neuladen über URLs hinweg gut ist - jedes Fenster scheint manchmal ein eigenes F12 zu haben. Dies ist eine gründlichere Möglichkeit, wenn Sie Zugriff auf das Javascript haben.
Ruffin
1
Wie machst du das in IE 11? Ich kann keine Cache-Option finden.
David Thielen
4
In IE 11 befindet sich diese Option unter F12 -> Netzwerk -> 3. Symbol von links.
Den
22

Ctrl+ F5im IE lädt die Seite neu und ignoriert den Cache

mfeingold
quelle
26
Nein, das tut es nicht. Ich weiß, dass der Cache manchmal ignoriert wird, aber nicht immer.
EMP
16
Strg + F5 lädt die Seite immer neu vom Server. Was es nicht unbedingt tut, ist das Neuladen der zusätzlichen Dateien, auf die die Seite verweist
2
Fair genug - aber ich brauche es, um ALLES neu zu laden.
EMP
1
STRG + F5 sollte eine vollständige Aktualisierung der Seite und aller Ressourcen durchführen. Aufrufe, die später über XMLHTTPRequest getätigt werden, werden möglicherweise zwischengespeichert (wenn Sie nicht möchten, dass sie zwischengespeichert werden, senden Sie entsprechende Header ohne Cache). Die einzige Einschränkung ist, dass die betreffende Seite, wenn es sich um XML handelt, tatsächlich über MSXML geladen wird und DocHost STRG + Aktualisieren NICHT ordnungsgemäß beachtet.
EricLaw
3
ctrl + f5 lädt nicht immer alles vom Server neu. In meinen Tests wird das in der HTML-Datei enthaltene Javascript nach dem Drücken von Strg-F5 nicht neu geladen, obwohl sich die Seite geändert hat.
Rcarver
18

IE ist sehr bemüht, Seiten zwischenzuspeichern, auch wenn Sie dies nicht über Cache-Header veranlassen. Microsoft KB 234067 erläutert die erforderlichen Beschwörungsformeln. Kurz gesagt, müssen Sie die folgenden Header bereitstellen.

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

Die Einstellung Expires = -1(wie im KB-Artikel empfohlen) sollte für die meisten Frameworks funktionieren. Browser müssen ungültige Datumsformate als in der Vergangenheit befindlich behandeln ( RFC 2616 ).

In .NET können Sie dies in einer seitenweisen Granularität tun, indem Sie diese Methoden verwenden, bevor Sie die Webseite aufrufen:

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();

Siehe: http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ Funktioniert gut für MVC3.0.

Marcelo Cantos
quelle
1
Unwahr. IE6 + respektiert alle Cache-verbietenden Header vollständig. fiddler2.com/redir/?id=httpperf
EricLaw
Das ist alles sehr gut, aber hilft WRT die Frage nicht.
Matthias Urlichs
6

Auf der Registerkarte "Netzwerk" der Symbolleiste für Webentwickler befindet sich eine Schaltfläche zum einfachen Löschen des Caches. Ich benutze das normalerweise in dem Fall, den du beschreibst.

Es ist nicht ideal, da Sie möglicherweise nicht wirklich Ihren gesamten Cache löschen möchten, aber da ich den IE nicht für das allgemeine Surfen verwende, funktioniert es für mich.

pkaeding
quelle
4

Dies passiert immer noch im IE9. Erstaunlicherweise lautet die Antwort Ctrl- Shift-Refresh-Taste

PandaWood
quelle
Funktioniert das anders als die Schaltfläche Strg-Aktualisieren?
Jon Onstott
3

Im Übrigen besteht das Problem möglicherweise auch für Ihre Website-Betrachter. Ich habe die folgende Idee in einem AJAX-Buch gesehen ...

Verwenden Sie PHP, um der aktuellen URL ein zufälliges Token hinzuzufügen, sodass der Browser täuscht, dass es sich um eine separate Seite handelt.

Moshe
quelle
Macht URLs jedoch hässlich.
LawrenceC
2

Ich selbst hatte das gleiche Problem. Ich glaube, die einzige Möglichkeit besteht darin, den Cache zu löschen (Sicherheit -> Browserverlauf löschen). Aktivieren Sie nur "Temporäre Internetdateien".

Hoffe das hilft.

jchapa
quelle
2

Halten Sie beim Klicken auf die Schaltfläche Aktualisieren entweder die Taste altoder ctrlgedrückt.

Niaccm
quelle
1

Ich bin damit einverstanden, dass das Hinzufügen eines zufälligen Tokens zur URL die zuverlässigste Lösung ist und der Benutzer nach der Implementierung nichts mehr tun muss.

Abgesehen von dem Zufallstoken-Ansatz, den ich normalerweise immer mache, um ein vollständiges Neuladen (Anfordern) der Seite und aller abhängigen Dateien zu erzwingen, setze ich meinen Cursor einfach an das Ende der URL und drücke die Eingabetaste. Funktioniert jedes Mal ... und ich benutze IE 8.

Jerry
quelle
1

F12-> CTRL+ Rist für IE9 + etwas schneller. Wie bereits erwähnt, löscht der Internet Explorer den Cache nicht so intelligent wie Chrome.

Chris S
quelle
1

Ich weiß, das mag ein bisschen seltsam erscheinen ... aber eine Sache, die mir in letzter Zeit aufgefallen ist, ist, dass Sie manchmal unterschiedliche Ergebnisse erzielen, je nachdem, WIE Sie "aktualisieren". Ich habe folgendes Verhalten gesehen:

F5> lädt aus dem Cache ohne Aktualisierung,
Alt+ D, ENTER> aktualisiert den Cache wirklich umgangen.
( Alt+ Dkann durch Klicken in die Adressleiste ersetzt werden)

Eidylon
quelle