我们使用包含严格压力测试的预览版 3 部署了一个实时、新鲜、时髦的网站。
页面输出缓存是我们的救星,使我们能够满足我们的性能合同要求。
OutputCacheFilter
我的问题是,动作和页面输出缓存之间有区别吗?
动作输出缓存比页面输出缓存快吗?
我们使用包含严格压力测试的预览版 3 部署了一个实时、新鲜、时髦的网站。
页面输出缓存是我们的救星,使我们能够满足我们的性能合同要求。
OutputCacheFilter
我的问题是,动作和页面输出缓存之间有区别吗?
动作输出缓存比页面输出缓存快吗?
在内部,OutputCacheAttribute(又名输出缓存过滤器)使用与页面输出缓存(又名@OutputCache 指令)相同的内部机制。
因此,它并不比页面输出缓存快。但是,使用 MVC,您确实不能通过 MVC 中的 @OutputCache 指令使用页面输出缓存,因为我们在操作运行后渲染视图(也称为页面)。因此,您将获得的收益很少。
使用输出缓存过滤器,如果结果在输出缓存中,它会做正确的事情并且不执行操作代码。希望有帮助。:)
请注意,如果您在标记为缓存的 Action 上调用 Html.RenderAction(..),则当前存在错误。而不是缓存特定的操作,而是缓存整个页面。我已经在 codeplex 上报告了这个问题,这似乎是一个已知问题: Calling <% HTML.RenderAction<...>(...); %> 到带有 [OutputCache(..)] 的操作会导致整个页面缓存。