我的网站页面由两种内容组成。第一个在用户之间是可变的,但对于所有页面都是不变的。第二个在用户之间是不变的,但在页面之间是可变的。这是一种常见的布局。将输出缓存应用于此类内容的最佳方法是什么?
据我了解,Html.Substitute 助手与 MVC2 渲染管道不兼容,消除了甜甜圈缓存的旧方式。
对每个页面使用 VaryByParam="user" 的正常输出缓存?
特异性水平会降低输出缓存的价值。在缓存输出的生命周期内,同一用户不太可能多次查看同一页面。
使用备用 OutputCache 子系统
互联网上有几种尝试修改 OutputCache 属性和渲染子系统以支持替换。我找到的最好的是这里。
但是,我发现的各种片段似乎都是非正式的实现,并且没有得到很好的支持。此外,我倾向于怀疑,如果将替换添加回 MVC2 管道那么容易,它就会完成。
从几个单独缓存的子动作组成最后一页
action 方法不会被标记为OutputCache
属性,并且会返回一个包含多个Html.RenderAction
调用的视图,这些调用将拉入独立缓存的内容。除了 using 的重量级影响之外RenderAction
,它还会增加一层额外的间接层和代码味道。
您在 MVC2 中编写独立缓存的内容有何经验?什么效果好,什么效果不好?