controlar programaticamente o cache de saída - desative ou ative o cache de acordo com o valor do parâmetro
Temos um cenário de comércio eletrônico bastante padronizado com listas paginadas de produtos nas categorias. Para melhor ou pior, cerca de 80% dos visitantes nunca navegam além da primeira página, dependendo da categoria, pode haver de 5 a 10 páginas a mais de resultados que são visualizados com muito menos frequência. (Sim, otimizamos o que aparece na primeira página e temos boa pesquisa - mas essa é uma discussão diferente)
Não podemos armazenar em cache cada página de resultados, porque somos limitados pela memória, mas o benefício de armazenar em cache apenas a primeira página de resultados para cada categoria seria enorme.
Eu sei que eu poderia fazer algo semelhante usando o cache de objetos para armazenar os conjuntos de dados em questão, mas isso é possível usando o cache de saída, talvez usando o objeto response.Cache?
Onde no ciclo de vida da página isso poderia ser feito? Pré-renderizar?
Muito simplificada, a URL é algo como "/ ProductList? Category = something & Page = 1" E eu quero lógica algo como (pseudocódigo):
<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>
Estamos usando o ASP.NET 2.0, no IIS 6 / win2003.