programowo steruj buforowaniem wyjścia - wyłącz lub włącz pamięć podręczną zgodnie z wartością parametru

Mamy dość standardowy scenariusz e-commerce z listami stronicowanych produktów w kategoriach. Na lepsze lub gorsze, około 80% odwiedzających nigdy nie przechodzi przez pierwszą stronę, w zależności od kategorii może być 5-10 dodatkowych stron wyników, które są wyświetlane znacznie rzadziej. (Tak, optymalizujemy to, co pojawia się na pierwszej stronie i mamy dobre wyszukiwanie - ale to inna dyskusja)

Nie możemy buforować każdej pojedynczej strony wyników, ponieważ jesteśmy ograniczeni pamięcią, ale korzyści z buforowania tylko pierwszej strony wyników dla każdej kategorii byłyby ogromne.

Wiem, że mógłbym zrobić coś podobnego przy użyciu buforowania obiektów do przechowywania danych zestawów danych, ale czy jest to możliwe przy użyciu buforowania danych wyjściowych, być może przy użyciu obiektu response.Cache?

Gdzie w cyklu życia strony można to zrobić? Czy renderujesz wcześniej?

Znacznie uproszczony, adres URL jest podobny do „/ ProductList? Category = coś & Page = 1”, a ja chciałbym logiki coś takiego (pseudokod):

<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>

Korzystamy z ASP.NET 2.0 na IIS 6 / win2003.

questionAnswers(5)

yourAnswerToTheQuestion