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:
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
istKann jemand helfen?
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.
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.
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.
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 ...
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%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.
Tags und Links html internet-explorer caching modal-dialog