Какова практика частичного кэширования в ASP MVC2? - PullRequest
8 голосов
/ 13 октября 2010

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

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

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

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 12 января 2011

Пожалуйста, посмотрите на этот вопрос и также информацию , как stackoverflow делает это может помочь вам.

...