正文

页面输出缓存相关的指令2007-10-22 23:15:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/goalbell/30304.html

分享到:

声明控制ASP.NET页面的输出缓存机制或者用户控件包含在页面。关于输出缓存更多信息,请查看ASP.NET Caching Features。

<%@ OutputCache Duration="#ofseconds" Location="Any | Client | Downstream | Server | None" Shared="True | False" VaryByControl="controlname" VaryByCustom="browser | customstring" VaryByHeader="headers" VaryByParam="parametername" %>
属性
Duration
时间,页面或者用户控件被缓存的秒数。建立这个属性在页面或者用户控件,为HTTP 响应确立一个到期的机制以及会自动缓存页面或者用户控件的输出。
Location
OutputCacheLocation枚举值之一。确省值为Any。
注意:该属性不支持@OutputCache指令包含在用户控件(.ascx文件)。
Shared
一个布尔值,确定用户控件是否可以被多个页面共赏。缺省值为false。更多信息请查看Remarks区段。
注意:该属性不支持@OutputCache指令包含在ASP.NET页面(.aspx文件)。
VaryByCustom 
  任何文本代表自定义输出缓存需求。如果赋予该属性的值为浏览器,缓存将随浏览器名称以及主要版本信息不同而不同。
如果输入了自定义字符串,你必须在应用程序的Global.asax文件中重写HttpApplication.GetvaryByCustomString()方法。
VaryByHeader
  一个用来调整缓存的HTTP头的分号分隔的列表。当该属性被设置成多个头的时候,输出缓存为每个指定的头包含一个请求文档的不同版本。
注意:设置VaryByHeader属性使用在全部HTTP1.1缓存中缓存项目,不只是ASP.NET缓存。该属性不支持@OutputCache指令在用户控件。
VaryByParam
  一个用来调整输出缓存的分号分隔的列表。这些字符串缺省对应于使用GET方法属性发送的查询字符串,或者使用POST方法发送的参数。当这个属性
被设置成多个参数的时候,该输出缓存包含不同的为每个指定参数的请求文档的版本。可能这些值包含none,*,以及任何有效的查询字符串或者POST参数的名称。
注意:当你的ASP.NET页面输出缓存的时候,该属性是必需的。除非你在该控件的@OutputCache指令中包括VaryByControl属性,否则用户控件都必需的。
如果你没有包括它,就会产生错误。如果你不想指定参数来调整缓存的话,设置值为none。如果你想通过所有的参数值调整输出缓存的话,那么设置该属性为*。
VaryByControl
   一个用来调整用户控件缓存的分号分隔的列表。这些字符串代表在用户控件声明的ASP.NET服务器控件值的ID属性。更多信息,请参考Caching Portions of an ASP.NET Page。
注意:除非你已经包括了VaryByParam属性,否则该属性在用户控件的@OutputCache指令中是必需的。该属性在ASP.NET页面中不支持@OutputCache指令。
Remarks
为页面输出缓存设置值相当于通过HttpResponse.Cache属性操作HttpCachePolicy.SetExpires和HttpCachePolicy.SetCacheability方法一样。
当创建用户控件实现部分页面缓存的时候,设置VaryByParam属性。
如果一个Web Forms页面需要通过授权才能给用户观看的话,输出缓存设置Cache-Control Http头为私有。关于所有这些主题的更多信息,请参考Caching ASP.NET Pages。
如果设置Shared属性为true,缓存用户控件输出可以通过多个Web Forms 页面被存取的。如果你设置为false,那么缺省的行为为每一个包含用户控件的页面缓存用户控件输出的一个版本。你可以通过使用Shared
属性,潜在节省了大量的内存。更多信息,查看Caching Portions of an ASP.NET Page。
例子
下面的例子通过你设置页面或者用户控件输出缓存的期限。
<%@ OutputCache Duration="100" VaryByParam="none" %>
 
下面的例子通过location以及count形成来自表单的POST或者查询字符串的参数指示输出缓存去缓存页面或者用户控件。
 
每一个到达不同的location或者count参数(或者两者)的HTTP请求都会被缓存10秒。
 
随后的任何相同参数值的请求直到到了期限才同意缓存。
 
<%@ OutputCache Duration="100" VaryByParam="location;count" %>
 
参考资料:http://msdn2.microsoft.com/zh-cn/library/hdxfb6cy(VS.71).aspx 
 
 

阅读(2302) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册