MVC中outputcache页面缓存

一、页面缓存 

利用页面输出缓存,可以存储呈现的 HTML,以响应相同页的后续请求。 我们可使用输出缓存来缓存整个网页或仅缓存ASP.NET 控件的输出。页面缓存可让 ASP.NET 向客户端发送页响应,而不必再次经过页处理生命周期。 页输出缓存对于那些不经常更改,但需要大量处理才能创建的页特别有用,可以极大地提高该页的性能。 

可以分别为每个页配置页缓存,也可以在 Web.config 文件中创建缓存配置文件,利用缓存配置文件,只定义一次缓存设置就可以在多个页中使用这些设置。

 


二、OutPutCache常用属性介绍

 

1、Duration 

用于设置页面或者用户控件缓存的时间。单位是秒。通过设置该属性,能够为来自对象的HTTP响应建立了一个过期策略,并将自动缓存页或用户控件输出。需要注意的是,Duration属性是必需的,否则将会引起分析器错误。
 

2、OutputCacheLocation

枚举类型,缓存的位置。当设置成None时,所有缓存将失效,默认为Any。

(1)、Any:页面被缓存在浏览器、代理服务器端和web服务器端;

(2)、Client:缓存在浏览器;

(3)、DownStream:页面被缓存在浏览器和任何的代理服务器端;

(4)、Server:页面被缓存在Web服务器端;

(5)、None:页面不缓存;

(6)、ServerAndClient:页面被缓存在浏览器和web服务器端;

 

3、VaryByParam

用于多个输出缓存的字符串列表,并以分号进行分隔。默认时,该字符串与GET方法传递的参数或与POST方法传递的变量相对应。当被设置为多个参数时,输出缓存将会为每个参数都准备一个与之相对应的文档版本。

可能值包括none,*,以及任何有效的查询串或POST参数名称。

如果您不想要为不同的已缓存内容指定参数,可以将其设置为none。如果想要指定所有的已缓存内容参数,可以设置为*。

 

4、VaryByCustom

用于自定义输出缓存要求的任意文本。如果赋予该属性值是browser,缓存将随浏览器名称和主要版本信息的不同而异。如果输入了自定义字符串,则必须在应用程序的Global.asax文件中重写HttpApplication.GetVaryByCustomString方法。

 

5、VaryByHeader

该属性中包含由分号分隔的HTTP标头列表,用于使输出缓存发生变化。当将该属性设为多标头时,对于每个指定的标头,输出缓存都包含一个请求文档的不同版本

 

6、NoStore

一个布尔值,用于决定是否阻止敏感信息的二级存储。 将此属性设置为true等效于在请求期间执行代码“Response.Cache.SetNoStore();”。

 

7、CacheProfile

配置文件中设置缓存。 这是可选特性,默认值为空字符串 ('')。

在页中指定此属性时,属性值必须与 outputCacheSettings 节下面的 outputCacheProfiles 元素中的一个可用项的名称匹配。 如果此名称与配置文件项不匹配,将引发异常。

 

参考资料:MVC中outputcache页面缓存   http://www.studyofnet.com/news/1167.html



你可能感兴趣的:(mvc)