Wie deaktivierst du das Caching von Modal-Dialogen in IE?

8

Wir haben ein Popup-Fenster als modalen Dialog mit der IE-Methode implementiert:

%Vor%

Das Ziel des Popup-Fensters ist selbst eine ASP.Net-Webseite.

Nehmen Sie für die folgenden Schritte an, dass das Popup nie gestartet wurde:

  1. Popup starten.
  2. Der Page_Load-Ereignishandler wird auf der Serverseite ausgeführt.
  3. Popup-Fenster schließen.
  4. Starten Sie das Popup sofort erneut.
  5. Diesmal wird der Page_Load Event-Handler nicht ausgeführt.

Es ist klar, dass der Popup-Inhalt zwischengespeichert wird, denn wenn in Schritt 4 die temporären Internetdateien gelöscht werden, wird der Page_Load-Event-Handler das zweite Mal ausgeführt.

Wir haben versucht, dem Leiter der Webseite Folgendes hinzuzufügen (wie von mehreren anderen Quellen empfohlen), aber nichts davon scheint zu funktionieren.

%Vor%

Wir haben auch Orte gesehen, an denen davon abgeraten

ist

Kann jemand helfen?

    
Andy McCluggage 01.12.2008, 12:07
quelle

9 Antworten

9

Eine Zeitstempel-Querystring-Variable zur URL des Dialoginhalts hinzufügen - Anzahl der Ticks seit dem 1.1.08 oder so - IE behandelt diese als neue Seite und ignoriert den Cache.

    
Greg Hurlman 01.12.2008, 12:17
quelle
8

Um den Cache zu löschen, fügen Sie dies beim Laden der Seite hinzu:

%Vor%     
F. Dobon 26.02.2010 16:04
quelle
4

Da die http-equiv-Direktiven nicht funktionieren (und wohl nicht verwendet werden sollten), und obwohl sie leider in der Hack-Kategorie von Lösungen liegen, denke ich, dass wir damit fortfahren müssen Greg) ...

%Vor%

Es ist seltsam, dass es keine definitive Möglichkeit gibt, das Caching in diesen modalen Dialogen zu deaktivieren. Ich bin mir nicht sicher, ob die Verwendung modaler Dialoge in Webbrowsern als "gute Idee" akzeptiert wird oder nicht, aber wir kennen zumindest einige der Mängel und Alternativen, können sie aber leider nur in diesem Projekt verwenden.

Danke für Ihre Vorschläge.

    
Andy McCluggage 02.12.2008 09:26
quelle
2

Platzieren Sie Fiddler zwischen dem IE und Ihrem Server. Überprüfen Sie dann, ob die Antwort auf Ihre Anfrage einen HTTP-Header Cache-Control enthält. Gibt es einen anderen Wert als no-cache ? Wenn ja, dann wird IE vielleicht diese Überschrift Priorität vor der Ссылка Anweisung geben.

Falls nicht, sollten Sie versuchen, dass der Server den HTTP-Header Cache-Control: no-cache sendet. Wenn IE dies nicht respektiert, ist es ein Fehler in IE. Die Erfahrung zeigt, dass es weniger schmerzhaft ist, sich für eine andere Lösung zu entscheiden, als auf einen Bugfix zu drücken. In diesem Fall würde ich dem Tipp von Greg zustimmen.

    
mkoeller 01.12.2008 13:53
quelle
2

Zuerst habe ich versucht, den folgenden Code zu verwenden.

%Vor%

aber es wurde keine Lösung gegeben, ich versuchte mit Query String mit Zeitstempelvariable, wie

%Vor%

dann funktioniert es ....

Danke ...

    
Kamalakar Dandu 04.10.2011 16:41
quelle
1

Sie haben ein Tag vergessen, um die Seite erneut zu verarbeiten.

%Vor%

Wenn Sie unter Tags setzen, wird der Cache bereinigt:

%Vor%     
André 02.02.2011 10:32
quelle
0

Eine der seltsamen Eigenheiten von IE ist, dass das Festlegen von no-cache am Anfang der Datei nicht zu funktionieren scheint, aber das Verschieben dieses Abschnitts nach dem ursprünglichen HTML macht es oft. Am besten senden Sie es als HTTP-Header, aber Folgendes funktioniert in den meisten Fällen:

%Vor%     
user43332 07.01.2009 16:46
quelle
0

Die Antwort Response.Cache.SetCacheability (HttpCacheability.NoCache); ist die einzige, die korrekt mit IE9 funktioniert. Wenn Sie den Zeitstempel in der Abfragezeichenfolge festlegen, müssen Sie die Seite immer noch aktualisieren, um eine andere URL zu erhalten. Daher wird das modale Dialogfeld weiterhin zwischengespeichert, bis die Seite aktualisiert wird, es sei denn, Sie verwenden Response.Cache.SetCacheability (HttpCacheability.NoCache); Verwenden eines Zeitstempels für die URL und Response.Cache.SetCacheability (HttpCacheability.NoCache); wäre am besten, decken alle Basen ab. Es ist IE, mit dem wir es schließlich zu tun haben.

    
Dale Wilbanks 18.05.2012 03:15
quelle
0

Sie können auch die folgende Anweisung oben auf der Aspx-Seite versuchen, die aufgerufen wird:

%Vor%     
Abey 09.08.2012 03:54
quelle