您的位置:首页 > 运维架构 > 网站架构

高效网站开发缓存技术应用——网页输出缓存(Ⅰ)

2014-01-11 23:05 260 查看

高效网站开发缓存技术应用——网页输出缓存(Ⅰ)

       网页输出缓存 是 ASP.NET 缓存中的重要组成部分。网页输出缓存又分为:完整页缓存、用户控件缓存 和 缓存后替换。下面我们先来学习一下 ——完整页缓存!

       使用@OutputCache 可以已声明的方式控制ASP.NET页或页中包含的用户控件的输出缓存策略,实现对页面输出缓存的一般性需求。

关键技术:

<%@OutputCache Duration="60" Location="Any|Client|Downstream|Server|None|ServerAndClient"
Shared="True|False" VaryByControl="controlname"
VaryByCustom="browser|customstring" VaryByHeader="headres"
VaryByparam="parametername" %>


@OutputCache 指令中各个属性如下表所示:

   属性名
                            说              明
Duration缓存过期时间(单位:秒 *注:此属性为必填项)
Location指定输出缓存可以使用的场所,默认为 Any(*注:在用户控件中@OutputCache 指令不支持此属性)
Shared是否可以由多个页共享,默认值为 False
VaryByControl一个用分号分割的字符串,用来改变用户控件的部分输出缓存(字符串为用户控件页中的服务器控件ID)
VaryByCustom根据自定义文本改变缓存内容
VaryByHeader根据HTTP头改变缓存内容
VaryByParam一个用分号分割的字符串,用来改变使输出缓存发生变化,默认情况下与GET或POST的参数对应

说明:

@OutputCache 指令必须和 VaryByControl 属性或者 VaryByParam属性之一搭配使用,这是最基本的要求。
例如:
<%@OutputCache Duration="60" VaryByControl="" %>


<%@OutputCache Duration="60" VaryByParam="" %>


例子一:根据多个参数进行缓存

               如果要根据多个参数来缓存,需要包含已分号分割的参数名称,例如:VaryByParam="Id,Card".若要根据所有的参数值来缓存,需要将 VaryByParam属性值设为星号,

              例如:VaryByParam = "*"

例子二:实现网页缓存的多个版本方法

               实现网页多个版本缓存有两种方法:一是以@OutputCache 指令属性声明的方式缓存网页输出的多个版本,二是以 HttpCachePolicy 类的属性和方法(Response.Cache)通过编程方式缓存网页输出的多个版本。

例如: 

Response.Cache.SetExpires(Datetime.Now.AddSecondes(60));
Response.Cache.SetCacheability(HttpCacheility.Public);
Response.Cache.SetValidUntilExpires(true);
Response.Cache.VaryByParam["Card"]=true;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息