Ausgabecache programmgesteuert steuern - Cache je nach Parameterwert deaktivieren oder aktivieren

Wir haben ein ziemlich normales E-Commerce-Szenario mit seitenweisen Produktlisten innerhalb von Kategorien. Gut oder schlecht, 80% der Besucher navigieren nie über die erste Seite hinaus. Je nach Kategorie können dann 5-10 weitere Ergebnisseiten vorhanden sein, die weitaus seltener angezeigt werden. (Ja, wir optimieren das, was auf der ersten Seite angezeigt wird, und haben eine gute Suche - aber das ist eine andere Diskussion.)

Wir können nicht jede einzelne Ergebnisseite zwischenspeichern, da der Arbeitsspeicher dies zulässt. Der Vorteil des Zwischenspeicherns nur der ersten Ergebnisseite für jede Kategorie wäre jedoch immens.

Ich weiß, dass ich mit der Objektzwischenspeicherung etwas Ähnliches tun könnte, um die fraglichen Datasets zu speichern. Ist dies jedoch mit der Ausgabezwischenspeicherung möglich, möglicherweise mithilfe des response.Cache-Objekts?

Wo im Lebenszyklus der Seite könnte dies geschehen? Vorrendern?

Die URL ist stark vereinfacht: "/ ProductList? Category = something & Page = 1" Und ich möchte eine Logik wie (Pseudocode):

<code>If paramater "Page" equals 1
   Use output caching: vary by param = "categoryName; page"
else
   Don't use caching at all, just render the page from scratch.
</code>

Wir verwenden ASP.NET 2.0 unter IIS 6 / win2003.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage