Was ist der beste Weg, um mit cache und den browser-zurück-button?
Was ist der beste Weg zu handhaben, ein Benutzer geht zurück auf eine Seite, die hatte zwischengespeicherten Elemente in einem asp.net app? Ist es ein guter Weg, um zu erfassen die zurück-Taste (event?) und Griff den cache in dieser Art?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, mit der HttpResponse.Cache-Eigenschaft wenn das helfen würde:
Könnte oder könnte-block-caching der Seite, zusammen mit HttpResponse.CacheControl, aber es war veraltet, zu Gunsten der Cache-Eigenschaft oben:
Edit: ODER man könnte wirklich Nüsse gehen und machen alles von hand:
Soweit ich weiß (oder zumindest gelesen haben) ist die beste, um zu versuchen, nicht zu arbeiten und in Reaktion auf Benutzer-events, sondern denke eher "auf der Seite"..
Architektur Ihrer Anwendung, also ist es nicht egal, wenn Sie die zurück-Taste gedrückt wird.. Es wird nur viel mit ihm.. Dies kann bedeuten, dass ein wenig zusätzliche Arbeit aus Entwicklersicht, aber insgesamt ist die Anwendung sehr viel robuster..
I. e wenn Sie Schritt 3 führt einige Daten chages, dann klickt der Benutzer zurück (Schritt 2) und klickt erneut auf weiter, dann prüft die Anwendung, um zu sehen, ob die änderungen gemacht wurden.. Oder im Idealfall es nicht machen schwer änderungen, bis der Benutzer klickt auf "OK" am Ende.. Diese Weise werden alle änderungen sind gespeichert und Sie können wieder Auffüllen, die form, basierend auf die zuvor eingegebenen Werte in den laden, und jedes mal..
Ich hoffe das macht Sinn 🙂
RFC 2616 §13.13 sagt, dass Verlauf und Cache sind zwei verschiedene Dinge. Es sollte absolut keine Möglichkeit für den cache zu beeinflussen, Zurück-Taste.
Wenn eine beliebige Kombination von HTTP-Headern betrifft, Zurück-button, es ist ein bug im browser ...mit einer Ausnahme.
HTTPS Browser interpretieren
Cache-control: must-revalidate
als Anfrage zur Aktualisierung Seiten beim Zurück-button benutzt (Mozilla nennt es "albern bank-Modus"). Dies ist nicht unterstützt in plain-HTTP.Der beste Weg, damit umzugehen, ist wohl ein no-cache-Direktive in Ihren ASP.NET Seiten (oder eine master-Seite, wenn Sie eine verwenden). Ich glaube nicht, dass es einen Weg gibt, um sich mit diesem direkt in Ihre ASP.NET code (da der cache Entscheidung geschieht auf dem client).
Als für MVC, nicht wissen, wie Sie möchten erreichen, dass (vorausgesetzt, es unterscheidet sich von Web Forms-basierte ASP.NET); ich habe nicht verwendet es.
Folgende code hat bei mir im IE9+, FF21 und Neuesten Chrome:
Kann man dieses in
Page_Load()
event-handler in der MasterPage, so dass jede Seite in der app erfordert eine round trip zum server beim drücken der zurück-Taste.