webentwicklung-frage-antwort-db.com.de

Wie kann ich den Internet Explorer (IE) zwingen, die Seite WIRKLICH neu zu laden?

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 es versucht F5Control-F5Control-RControl-Shift-Rhalten Control Wenn Sie auf die Schaltfläche "Aktualisieren" klicken, werden die neuen Inhalte nicht 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 neu laden die Seite - nein wirklich, ich meine es dieses Mal ehrlich zu Gott, ich möchte, dass Sie tatsächlich Gehe zum Server und lade alles erneut herunter "?

151
EMP
  1. Wählen Sie Extras >> Internetoptionen .
  2. Klicken Sie auf die Schaltfläche Einstellungen in Browserverlauf .
  3. Wählen Sie das Optionsfeld Jedes Mal, wenn ich die Webseite besuche .
  4. Klicken Sie aufOK, um das Dialogfeld "Einstellungen" zu schließen.
  5. Klicken Sie aufOK, um das Dialogfeld "Internetoptionen" zu schließen.
122
Gonzalo

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

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

Sie können auch hier 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.

42
Brandon

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

22
mfeingold

IE ist sehr bemüht, Seiten zwischenzuspeichern, auch wenn Sie dies nicht über Cache-Header veranlassen. Microsoft KB 234067 erklärt 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>

Das Festlegen von 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 mit den folgenden Methoden seitenweise ausführen, 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.

17
Marcelo Cantos

Die Webentwickler-Symbolleiste verfügt über eine Schaltfläche zum einfachen Löschen des Caches. Ich benutze das normalerweise in dem Fall, den Sie beschreiben.

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

6
pkaeding

Dies passiert immer noch im IE9. Erstaunlicherweise lautet die Antwort Ctrl-Shift- Schaltfläche "Aktualisieren"

4
PandaWood

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.

3
Moshe

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.

2
jchapa

Halten Sie entweder die alt oder ctrl Taste drücken, während Sie auf die Schaltfläche "Aktualisieren" klicken.

2
niaccm

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+DENTER > wirklich aktualisiert den Cache.
(Alt+D kann durch Klicken in die Adressleiste ersetzt werden)

1
eidylon

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.

1
Jerry

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

1
Chris S