У нас есть довольно стандартный сценарий электронной коммерции с выгружаемыми списками продуктов в категориях. К лучшему или худшему, около 80% посетителей никогда не перемещаются мимо первой страницы, в зависимости от категории может быть еще 5-10 страниц результатов, которые просматриваются гораздо реже. (Да, мы оптимизируем то, что появляется на первой странице и имеют хороший поиск, - но это другое обсуждение)
Мы не можем кэшировать каждую страницу результатов, потому что мы ограничены памятью, но преимущество кэширования только первой страницы результатов для каждой категории было бы огромным.
Я знаю, что мог бы сделать что-то подобное, используя кэширование объектов для хранения данных, о которых идет речь, но возможно ли это с помощью кэширования вывода, возможно, с помощью объекта response.Cache?
Где в жизненном цикле страницы это можно сделать? Pre-визуализация?
Намного проще, URL-адрес похож на "/ProductList? Category = something & Page = 1" И я бы хотел, чтобы логика была похожа на (псевдокод):
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.
Мы используем ASP.NET 2.0 на IIS 6/win2003.