Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 1:36:41
asp.net2.0中页面输出缓存

asp.net2.0中页面输出缓存

页面输出缓存

页面输出缓存是最简单的缓存机制,该机制将整个ASP.NET 2.0页面内容保存在服务器内存中。当用户请求该页面时,系统从内存中输出相关数据,直到缓存数据过期。在这个过程中,缓存内容直接发送给用户,而不必再次经过页面处理生命周期。通常情况下,页面输出缓存对于那些包含不需要经常修改内容,但需要大量处理才能编译完成的页面特别有用。另外,页面输出缓存是将页面全部内容都保存在内存中,并用于完成客户端请求。

页面输出缓存需要利用有效期来对缓存区中的页面进行管理。@OutputCache指令的格式如下:

<%@ OutputCache Duration="#ofseconds"

Location="Any | Client | Downstream | Server | None | ServerAndClient "

Shared="True | False"

VaryByControl="controlname"

VaryByCustom="browser | customstring"

VaryByHeader="headers"

VaryByParam="parametername"

%>

下面对@OutputCache指令中的各个属性进行详细介绍。

(1)Duration属性。

设置Web页或用户控件进行缓存的时间(以s计),在Web页或用户控件上设置Duration属性,为请求对象的HTTP响应建立一个过期策略,并将自动缓存页或用户控件输出。

注意:Duration属性为必选属性。HttpCachePolicy类的SetExpires方法用来确定有效期的时间,它的参数是一个DateTime类的实例,表示过期的绝对时间。

(2)Location属性。

OutputCacheLocation枚举值之一,默认值为Any。OutputCacheLocation枚举成员如表1所示。

表1 OutputCacheLocation枚举成员列表

注意:包含在用户控件(.ascx 文件)中的@ OutputCache指令不支持Location属性。

(3)CacheProfile 属性。

与当前页关联的缓存设置的名称。这是可选属性,默认值为空字符("")。

注意:包含在用户控件(.ascx 文件)中的@ OutputCache指令不支持CacheProfile属性。在页中指定CacheProfile属性时,属性值必须与outputCacheSettings节下面的outputCacheProfiles元素中的一个可用项的名称匹配。如果此名称与配置文件项不匹配,将引发异常。

(4)NoStore属性。

设置一个布尔值,它决定了是否阻止敏感信息的二级存储。

注意:包含在用户控件中的@ OutputCache指令不支持此属性。将此属性设置为True等效于在请求期间执行以下代码:Response.Cache.SetNoStore()。

(5)Shared属性。

设置一个布尔值,确定用户控件输出是否可以由多个页共享。默认值为False。

注意:包含在ASP.NET 2.0页(.aspx 文件)中的@ OutputCache指令不支持此属性。

(6)SqlDependency属性。

标识一组数据库和数据表名称的字符串值,页或控件的输出缓存依赖于这些数据库名称和数据表名称。

注意:SqlDependency属性的CommandNotification值仅在网页(.aspx)中有效。

(7)VaryByCustom属性。

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

(8)VaryByHeader属性。

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

注意:设置VaryByHeader属性将启用在所有HTTP 1.1版缓存中缓存项,而不仅仅在 ASP.NET 2.0缓存中进行缓存。用户控件中的@ OutputCache指令不支持此属性。

(9)VaryByParam属性。

分号分隔的字符串列表,用于使输出缓存发生变化。默认情况下,这些字符串与随GET方法属性发送的查询字符串值对应,或与使用POST方法发送的参数对应。将该属性设置为多个参数时,对于每个指定参数组合,输出缓存都包含一个不同版本的请求文档。该属性可能的值包括none、星号(*)以及任何有效的查询字符串或POST参数名称。

注意:在ASP.NET 2.0页和用户控件上使用@ OutputCache指令时,需要该属性或VaryByControl属性。如果没有包含它,则发生分析器错误。如果不希望通过指定参数来改变缓存内容,请将值设置为none。如果希望通过所有的参数值改变输出缓存,请将属性设置为星号(*)。

(10)VaryByControl属性。

一个分号分隔的字符串列表,用于更改用户控件的输出缓存。这些字符串代表用户控件中声明的ASP.NET服务器控件的ID属性值。

注意:在ASP.NET 2.0页和用户控件上使用@ OutputCache指令时,需要该属性或Vary ByParam属性。


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759