Какова в настоящее время практика частичного кэширования в ASP MVC2?

Страницы моего веб-сайта состоят из двух видов контента. Первый - переменный между пользователями, но постоянный для всех страниц. Второй - постоянный для пользователей, но переменный между страницами. Это обычная раскладка. Как лучше всего применить кэширование вывода к подобному контенту?

Насколько я понимаю, помощник Html.Substitute несовместим с конвейером рендеринга MVC2, что устраняет старый способ кэширования пончиков.

Использовать обычное кэширование вывода с VaryByParam = "user" для каждой страницы?

Уровень специфичности снизит ценность кэширования вывода. Маловероятно, что один и тот же пользователь будет просматривать одну и ту же страницу очень много раз в течение срока жизни кэшированного вывода.

Используйте альтернативную подсистему OutputCache

В Интернете есть несколько попыток, которые изменяют атрибут OutputCache и подсистему рендеринга на поддержка подмены. Лучшее, что я нашел, это здесь .

Однако различные найденные мной фрагменты кажутся неформальными реализациями и не очень хорошо поддерживаются. Кроме того, я склонен подозревать, что если бы было так просто добавить подстановку обратно в конвейер MVC2, это было бы сделано.

Составьте последнюю страницу из нескольких дочерних действий, которые кэшируются по отдельности.

Метод действия не будет отмечен атрибутом OutputCache и вернет представление, которое содержит несколько Html.RenderAction вызовы, которые извлекают независимо кэшированный контент. Помимо несколько тяжелых последствий использования RenderAction , это добавило бы дополнительный уровень косвенности и запах кода.

Каков ваш опыт создания независимо кэшированного содержимого в MVC2? Что работает хорошо, а что нет?

8
задан Kennet Belenky 13 October 2010 в 18:09
поделиться