高效网站开发缓存技术应用——网页输出缓存(Ⅰ)
来源:互联网 发布:阿里云丁丁 编辑:程序博客网 时间:2024/06/05 06:52
高效网站开发缓存技术应用——网页输出缓存(Ⅰ)
网页输出缓存 是 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是否可以由多个页共享,默认值为 FalseVaryByControl一个用分号分割的字符串,用来改变用户控件的部分输出缓存(字符串为用户控件页中的服务器控件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;
0 0
- 高效网站开发缓存技术应用——网页输出缓存(Ⅰ)
- 高效网站开发缓存技术应用——网页输出缓存(Ⅱ)
- 高效网站开发缓存技术应用——网页输出缓存(Ⅲ)
- 高效网站开发缓存技术应用——网页输出缓存
- java动态缓存技术——WEB缓存应用
- PHP网页缓存技术
- 网页缓存技术
- PHP网页缓存技术
- 缓存技术详谈—PHP缓存技术
- 产品设计:Android应用-开发技术【数据缓存】
- Android应用-开发技术【数据缓存】
- 产品设计:Android应用-开发技术【数据缓存】
- 产品设计:Android应用-开发技术【数据缓存】
- 产品设计:Android应用-开发技术【数据缓存】
- 产品设计:Android应用-开发技术【数据缓存】
- 产品设计:Android应用-开发技术【数据缓存】
- 产品设计:Android应用-开发技术【数据缓存】
- 产品设计:Android应用-开发技术【数据缓存】
- Binary Search Tree vs Hash Table?
- 大家来说说大数据时代与真正跨平台应用,如何结合的更好
- JS Tab切换 选项卡 五种方法
- [bzoj]3295: [Cqoi2011]动态逆序对 主席树
- POJ-2262-Goldbach's Conjecture-2013-11-28 23:15:10
- 高效网站开发缓存技术应用——网页输出缓存(Ⅰ)
- Android实现推送方式解决方案
- Android NDK的include配置
- JAVA WEB项目の问题汇总
- POJ-3006-Dirichlet's Theorem on Arithmetic Progressions-2013-12-02 18:05:36
- html radio
- 【踩雷】android 中UI线程内调用gl指令的结果
- UML类图符号 各种关系说明以及举例
- erlang 并发编程