Ich möchte eine lange Ablaufzeit für bestimmte Elemente festlegen können, die ein Benutzer über GET-Anfrage herunterlädt.Wie funktioniert die Verwendung des Expires-Headers in ASP.NET MVC am besten?
Ich möchte sagen "das ist gut für 10 Minuten" (d. H. Ich möchte eine Expires-Kopfzeile für +10 Minuten festlegen). Die Anfragen sind HTML-Fragmente, die auf der Seite über AJAX angezeigt werden und für die Sitzung des Benutzers gut sind. Ich möchte nicht zurück zum Server gehen und eine 304 bekommen, wenn sie sie wieder brauchen - ich möchte, dass der Browser-Cache mir sofort den gleichen Gegenstand gibt.
Ich fand einen Artikel, der fast ein Jahr alt ist über MVC Action filter caching and compression. Dies erstellt einen benutzerdefinierten ActionFilter, um den Expiry-Header zu ändern. Ich benutze bereits den Kompressionsfilter, der für einige benutzerdefinierte css funktioniert, die ich erzeuge (94% Kompressionsrate!).
Ich habe zwei Hauptanliegen:
1) Muss ich wirklich diese Methode verwenden. Mir geht es gut, wenn ich es tue, aber gibt es wirklich keine Funktionalität in MVC oder die OutputCache-Funktionalität, um dies für mich zu tun? Im "traditionellen" ASP.NET habe ich den Expires-Header immer nur manuell gesetzt, aber das können wir nicht mehr tun - zumindest nicht im Controller.
2) Wenn ich diese Filtermethode verwende - wird es die OutputCache-Richtlinie überhaupt stören -, die ich in web.config steuern kann. Ich denke, dass die beiden sich gegenseitig ausschließen, und du würdest beides nicht wollen - aber ich bin mir nicht ganz sicher.
@craig Dank für Ihre Eingabe. Ich denke, eine Faustregel in Bezug auf # 2 ist, dass, wenn die generierte Ansicht sehr einfach ist (d. h. kein Datenbankzugriff), das Ablaufen alles sein kann, was benötigt wird. Wenn zehn Webmethodenaufrufe erforderlich sind, sollten Sie OutputCache verwenden. Manchmal möchten Sie Köpfe UND Schwänze richtig :-) –
Bedenken: Wenn 10 Personen (auf verschiedenen Computern) Ihre Seite jeweils 10 Mal anfordern, läuft die Aktion selbst ab, dh Ihre Aktion läuft 10 Mal und der Server verarbeitet 10 Anfragen. Caching allein bedeutet, dass Ihre Aktion einmal ausgeführt wird und der Server 100 Anforderungen verarbeitet. Verfall und gemeinsames Caching bedeutet, dass Ihre Aktion einmal ausgeführt wird und der Server 10 Anforderungen verarbeitet. –