我们使用预览3(包括严格的压力测试)部署了一个实时,清新,时髦的网站。
页面输出缓存是我们的救星,使我们有能力满足我们的性能合同要求。
我的问题是,动作OutputCacheFilter
和页面输出缓存之间是否存在差异?
动作输出缓存是否比页面输出缓存更快?
答案 0 :(得分:3)
在内部,OutputCacheAttribute(也称为输出缓存过滤器)使用与page output caching相同的内部机制(也称为@OutputCache指令)。
因此,它不比页面输出缓存快。但是,使用MVC,您实际上无法通过MVC中的@OutputCache指令使用页面输出缓存,因为我们在操作后呈现视图(也称为页面)。所以你将获得很少的好处。
使用输出缓存过滤器,它会执行正确的操作,并且如果结果位于输出缓存中,则不会执行操作代码。希望有所帮助。 :)
答案 1 :(得分:1)
请注意,如果在标记为要缓存的Action上调用Html.RenderAction(..),则当前存在错误。而不是缓存特定操作,整个页面被缓存。我已经在codeplex上报告了这个问题,这似乎是一个已知的问题: Calling <% HTML.RenderAction<...>(...); %> to an Action with [OutputCache(..)] causes entire page to cache.