这是关于asp.net mvc3 web应用程序。
我们使用Object cache来存储序列化对象(包含产品详细信息),以防止昂贵的数据库查询。
假设它在对象缓存中存储了100个产品属性,这是在从缓存而不是从db加载页面时检索的。然后,它被传递到查看哪个准备和显示页面。因此它在视图上迭代100次并调用所有其他相关的局部视图来准备页面。
您是否建议将生成的视图存储在缓存中,而不是使用对象缓存?怎么做?
答案 0 :(得分:2)
您建议将生成的视图存储在缓存中,而不是使用对象缓存吗?
是
怎么做?
通过使用[OutputCache]
属性修饰为此视图提供服务的控制器操作。或者,如果您只想缓存页面的某些部分,则可以对将使用Html.Action
帮助程序(而不是HTML.Partial
- >>呈现的子操作使用此属性,您无法使用它进行缓存)。
答案 1 :(得分:1)
如果视图是静态的,您可以将视图存储在缓存中。您可以通过将OutputCache
属性置于操作上来实现。
VB:
<OutputCache(Duration:=3660, VaryByParam:="None")>
C#
[OutputCache(Duration=3660, VaryByParam="None")]
如果希望缓存根据操作参数
而有所不同,则可以更改VaryByParam设置