Frage Wie erzwinge ich den Internet Explorer (IE), die Seite wirklich neu zu laden?


Wenn ich Internet Explorer 8 verwende, um meine Webanwendung zu testen, finde ich oft, dass die Seite nicht neu geladen wird. Daher sehe ich meine Änderungen nicht. Dies hat viel Zeit und Frustration zur Folge gehabt und mich gefragt, warum mein Fix "nicht funktioniert" - als der Browser tatsächlich nie die fixierte Version geladen hat.

Ich habe den Refresh-Button ausprobiert. ich habe es versucht F5, Steuerung-F5, Steuerung-R, Steuerung-Verschiebung-Rhalten Steuerung während ich auf die Schaltfläche "Aktualisieren" klicke, alles, was mir einfällt - es lädt die neuen Inhalte nicht wirklich vom Server. Das habe ich mit Fiddler bestätigt.

Wie kann ich IE sagen "Es ist mir egal, was du denkst, dass du zwischengespeichert hast, ich möchte neu laden die Seite - nein wirklich, ich meine es ernst Diesmal, ehrlich zu Gott, möchte ich es tatsächlich Gehe zum Server und lade alles erneut herunter"?


145
2017-12-09 23:52


Ursprung


Benutze ein privates Browserfenster, vielleicht? - Josh Lee
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
Michael, nein, ich habe in Fiddler verifiziert, dass IE den Seiteninhalt nicht vom Server bekommt. - EMP
Control + F5 geht über den Cache, es ist seltsam, wenn es nicht .... - Tom Wijsman
Beste Formulierung einer Frage, die ich bisher bei StackExchange gefunden habe! - user785529


Antworten:


  1. Wählen Extras >> Internetoptionen.
  2. Drücke den die Einstellungen Schaltfläche ein Browser-Verlauf.
  3. Wähle aus Jedes Mal wenn ich die Webseite besuche Radio knopf.
  4. Klicken OK um den Einstellungsdialog zu schließen.
  5. Klicken OK um den Dialog Internetoptionen zu schließen.

119
2017-12-09 23:57



Wenn Sie das getan haben, markieren Sie es als Antwort - Earlz
Es kann die allgemeine Browsing-Leistung beeinträchtigen, aber nur, wenn Sie mit IE allgemein surfen ... - Joel Mueller
Ev: Die benutzerorientierte Seite wird normalerweise dadurch korrigiert, dass die URLs für alle Skripts und Stylesheets jedes Mal geändert werden, wenn Sie den Code berühren, normalerweise durch Hinzufügen eines ?version-number Abfragezeichenkette Suffix. - bobince
"Jedes Mal, wenn ich die Webseite besuche, wird wahrscheinlich nicht das getan, was Sie denken. Sehen fiddler2.com/redir/?id=httpperf - EricLaw
Ich stimme @EricLaw zu, wenn Sie Fiddler verwenden, werden Sie sehen, dass mit der Seite verknüpfte Dateien manchmal nicht neu geladen werden, selbst 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


Da angegeben wird, dass IE8 der Browser ist, können Sie drücken F12 Öffnen Sie die Entwicklungstools, wählen Sie oben das Menü Cache aus, und aktualisieren Sie dann immer den Server, um den Cache zu umgehen.

Zusamenfassend, Drücken Sie F12. Klicken Zwischenspeicher -> Immer vom Server aktualisieren

Sie können Ihren Cache auch hier löschen, wenn dies die gewünschte Aktion ist. Die Option "Immer aktualisieren" ist keine globale Option und beeinträchtigt nicht die allgemeine Leistung in IE.

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


41
2017-07-08 18:30



+1, um dies zu lösen, ohne eine globale Option zu verwenden. - Marcus Riemer
Ähnlich zu Hier, die immer noch nicht immer den gesamten Inhalt aktualisiert. Und ich weiß nicht, dass das Reload auch für URLs gut ist - jedes Fenster scheint zeitweise sein eigenes F12 zu haben. Dies ist eine gründlichere Möglichkeit zu tun, wenn Sie Zugriff auf die Javascript-Include haben. - ruffin
Wie machst du das in IE 11? Es gibt keine Cache-Option, die ich finden kann. - David Thielen
In IE 11 steht diese Option unter F12 -> Netzwerk -> 3. Symbol von links. - Den


Strg+F5 im IE lädt die Seite neu und ignoriert den Cache


22
2017-12-10 00:38



Nein, tut es nicht. Ich weiß, dass es den Cache einige Zeit ignoriert, aber nicht die ganze Zeit. - EMP
Strg + f5 lädt die Seite immer vom Server neu. Was es nicht unbedingt tut, ist, die zusätzlichen Dateien dieser Seitenreferenzen neu zu laden
Fair genug - aber ich brauche es, um alles nachzuladen. - EMP
STRG + F5 sollte eine vollständige Aktualisierung der Seite und aller ihrer Ressourcen durchführen. Anrufe, die über XMLHTTPRequest später getätigt werden, werden möglicherweise zwischengespeichert (wenn Sie nicht möchten, dass sie zwischengespeichert werden, senden Sie entsprechende No-Cache-Header). Der eine Vorbehalt ist, dass, wenn die fragliche Seite XML ist, sie wirklich über MSXML geladen wird, und dass DocHost STRG + Aktualisieren nicht korrekt respektiert. - EricLaw
ctrl + f5 lädt nicht immer alles vom Server neu. In meinen Tests wird JavaScript, das in der HTML-Datei enthalten ist, nach dem Drücken von Strg-F5 nicht neu geladen, obwohl sich die Seite geändert hat. - rcarver


IE ist sehr bemüht, Seiten zu cachen, auch wenn Sie es nicht über Cache-Header sagen. Microsoft KB 234067 erklärt die erforderlichen Beschwörungen. Kurz gesagt, müssen Sie die folgenden Header liefern.

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

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

In .NET können Sie dies seitenweise durchführen, indem Sie diese Methoden vor dem Aufruf der Webseite verwenden:

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

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


14
2017-12-10 01:31



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


Die Webentwickler-Symbolleiste verfügt über eine Schaltfläche zum einfachen Löschen des Caches. Normalerweise benutze ich das 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 IE für das allgemeine Surfen nicht verwende, funktioniert es für mich.


6
2017-12-09 23:58





Dies geschieht immer noch in IE9. Erstaunlicherweise ist die Antwort Strg-Verschiebung-Refresh-Taste


4
2018-04-01 03:47



Funktioniert das anders als Ctrl-Refresh? - Jon Onstott


Übrigens wird das Problem möglicherweise auch für Ihre Website-Viewer bestehen. Ich sah die folgende Idee in einem AJAX-Buch ...

Verwenden Sie PHP, um der aktuellen URL ein zufälliges Token hinzuzufügen, damit der Browser davon überzeugt wird, dass es sich um eine separate Seite handelt.


3
2017-12-10 00:14



Macht URLs jedoch hässlich. - LawrenceC