8

我的网站页面由两种内容组成。第一个在用户之间是可变的,但对于所有页面都是不变的。第二个在用户之间是不变的,但在页面之间是可变的。这是一种常见的布局。将输出缓存应用于此类内容的最佳方法是什么?

据我了解,Html.Substitute 助手与 MVC2 渲染管道不兼容,消除了甜甜圈缓存的旧方式。

对每个页面使用 VaryByParam="user" 的正常输出缓存?

特异性水平会降低输出缓存的价值。在缓存输出的生命周期内,同一用户不太可能多次查看同一页面。

使用备用 OutputCache 子系统

互联网上有几种尝试修改 OutputCache 属性和渲染子系统以支持替换。我找到的最好的是这里

但是,我发现的各种片段似乎都是非正式的实现,并且没有得到很好的支持。此外,我倾向于怀疑,如果将替换添加回 MVC2 管道那么容易,它就会完成。

从几个单独缓存的子动作组成最后一页

action 方法不会被标记为OutputCache属性,并且会返回一个包含多个Html.RenderAction调用的视图,这些调用将拉入独立缓存的内容。除了 using 的重量级影响之外RenderAction,它还会增加一层额外的间接层和代码味道。

您在 MVC2 中编写独立缓存的内容有何经验?什么效果好,什么效果不好?

4

1 回答 1

1

请看一下这个问题以及有关stackoverflow如何为您提供帮助的信息。

于 2011-01-11T22:35:01.210 回答