Действительно ли OutputCacheFilter в Microsoft MVC Preview 4 сохраняет вызовы действий?
-
08-06-2019 - |
Вопрос
Мы развернули живой, свежий и шикарный сайт, используя предварительную версию 3, включая тщательное стресс-тестирование.
Кэширование вывода страниц стало нашим спасением и позволило нам выполнить наши контрактные требования к производительности.
Мой вопрос: есть ли разница между действием OutputCacheFilter
и кэширование вывода страниц?
Кэширование вывода действия происходит быстрее, чем кэширование вывода страницы?
Решение
Внутри OutputCacheAttribute (он же фильтр выходного кэша) используется тот же внутренний механизм, что и кэширование вывода страницы (так называемая директива @OutputCache).
Следовательно, это не быстрее, чем кэширование вывода страницы.Однако с MVC вы действительно не можете использовать кэширование вывода страницы с помощью директивы @OutputCache в MVC, потому что мы отображаем представление (то есть страницу) после действие идет.Таким образом, вы получите очень небольшую выгоду.
Фильтр выходного кэша делает правильные действия и не выполняет код действия, если результат находится в выходном кэше.Надеюсь, это поможет.:)
Другие советы
Просто имейте в виду, что в настоящее время существует ошибка, если вы вызываете Html.RenderAction(..) для действия, помеченного для кэширования.Вместо кэширования конкретного действия кэшируется вся страница.Я уже сообщал об этом на codeplex, и это, кажется, известная проблема:Вызов <% HTML.RenderAction<...>(...);%> к действию с [OutputCache(..)] приводит к кэшированию всей страницы.