.Net页面缓存OutPutCache详解

一 它在Web.Config中的位置
 <system.web>
       <!--页面缓存-->
    <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <!--首页的缓存 30day-->
          <add name="homeindex" duration="2592000" varyByParam="id"  location="Any"/>
 
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>
 </system.web>
Duration 
 
缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的。通过设置该属性,能够为来自对象的HTTP响应建立了一个过期策略,并将自动缓存页或用户控件输出。需要注意的是,Duration属性是必需的,否则将会引起分析器错误。 
Location
 
Location当被设置为None时,其余的任何设置将不起作用
 Any——页面被缓存在浏览器、代理服务器端和web服务器端;
     Client——缓存在浏览器;
     DownStream——页面被缓存在浏览器和任何的代理服务器端;
     None——页面不缓存;
     ServerAndClient——页面被缓存在浏览器和web服务器端;
默认为Any 。
Shared
 
用来控制用户控件输出内容是否能够被多个页面共享。默认值为false。
VaryByCustom
 
任何自定义输出缓存的文字。如果将该属性设置为browser,将会缓存多种的浏览器名称与版本信息。当使用了自定义字符串之后,<br>就必须在应用程序的Global.asax文件中对HttpApplication.GetVaryByCustomString成员进行重载。
VaryByHeader
 
该属性中包含由分号分隔的HTTP标头列表,用于使输出缓存发生变化。当将该属性设为多标头时,对于每个指定的标头,输出缓存都包含一个请求文档的不同版 本。<br>VaryByHeader属性在所有HTTP 1.1缓存中启用缓存项,而不仅限于ASP.NET缓存。用户控件中的@ OutputCache指令不支持此属性。
VaryByParam
 
该属性定义了一个分号分隔的字符串列表,用于使输出缓存发生变化。

这个是缓存的参数,如果有多个中间需要使用分号进行分割

默认情况下,这些字符串与用GET方法属性发送的查询字符串值对应,或与用POST方法 发送的参数对应。当将该属性设置为多参数时,对于每个指定的参数,输出缓存都包含一个请求文档的不同版本。<br>可能的值包括“none”、“*”和任何有效的 查询字符串或POST参数名称。值得注意的是,在输出缓存ASP.NET页时,该属性是必需的。<br>它对于用户控件也是必需的,除非已经在用户控件的@ OutputCache指令中包含了VaryByControl属性。如果没有包含,则会发生分析器错误<br>。如果不需要使缓存内容随任何指定参数发生变化,<br> 则可将该值设为“none”。如果要使输出缓存根据所有参数值发生变化,则将属性设置为“*”。
原文地址:https://www.cnblogs.com/xiaoyaodijun/p/5056337.html