Meine Webseiten bestehen aus zwei Arten von Inhalten. Die erste ist variabel zwischen Benutzern, aber konstant für alle Seiten. Die zweite ist für alle Benutzer konstant, aber variabel zwischen den Seiten. Dies ist ein übliches Layout. Was ist der beste Weg, um Output-Caching auf solche Inhalte anzuwenden?
Wie ich es verstehe, ist der Html.Substitute-Helper mit der MVC2-Rendering-Pipeline inkompatibel, wodurch die alte Methode des Donut-Caching beseitigt wird.
Das Spezifitätsniveau würde den Wert der Ausgabezwischenspeicherung verringern. Es ist unwahrscheinlich, dass derselbe Benutzer die gleiche Seite sehr oft innerhalb der Lebensdauer der zwischengespeicherten Ausgabe anzeigt.
Es gibt mehrere Versuche im Internet zu schweben, die das OutputCache-Attribut und das Rendering-Subsystem modifizieren, um die Substitution zu unterstützen. Der beste, den ich gefunden habe, ist hier .
Die verschiedenen Snippets, die ich gefunden habe, scheinen jedoch informelle Implementierungen zu sein und werden nicht gut unterstützt. Außerdem bin ich geneigt zu vermuten, dass wenn es so einfach wäre, die Substitution wieder in die MVC2-Pipeline einzufügen, dies geschehen wäre.
Die Aktionsmethode würde nicht mit einem OutputCache
-Attribut gekennzeichnet werden und würde eine Ansicht zurückgeben, die mehrere Html.RenderAction
-Aufrufe enthält, die unabhängig voneinander zwischengespeicherten Inhalt abrufen würden. Abgesehen von den etwas schwergewichtigen Auswirkungen der Verwendung von RenderAction
, würde es eine zusätzliche Schicht von Indirektion und Code-Geruch hinzufügen.
Welche Erfahrung haben Sie mit der Erstellung von unabhängig zwischengespeicherten Inhalten in MVC2? Was hat gut funktioniert und was nicht?
Bitte werfen Sie einen Blick auf diese Frage und auch auf info wie stackoverflow kann dies Ihnen helfen.
Tags und Links asp.net-mvc-2 partial-views outputcache renderaction donut-caching