- 浏览: 79560 次
- 性别:
- 来自: dg
文章分类
- 全部博客 (70)
- [随笔分类]DB(数据库) (18)
- c# (1)
- 实用参考代码 (1)
- 默认收藏夹 (9)
- [网站分类]6.读书区(技术书籍阅读心得、书籍推荐) (1)
- xml&web服务 (1)
- [随笔分类]Asp.net (18)
- C# BLOG (1)
- 技术仓库 (0)
- .net (1)
- 编程技巧 (1)
- [随笔分类].Net Framework (1)
- [随笔分类]程序人生(非技术) (1)
- [随笔分类]其他技术类 (1)
- [随笔分类]WAP (1)
- 收藏夹 (1)
- 其他 (1)
- DotNet技术 (4)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (4)
- [网站分类]7.提问区(建议在<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>中提问) (2)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (1)
- [随笔分类]Javascript & Css & Html (1)
最新评论
前段时间工作比较忙,没时间读代码,这几天有空,正好又来静读代码了.
在Menus_ascx中我们看到用了缓存自定义字符串"authenticated"
<%@ OutputCache Duration="86400" VaryByParam="None" VaryByCustom="authenticated" %>
注意: @OutputCache 指令与必需的 Duration 和 VaryByParam 属性包括在一起。必须将 Duration 属性设置为大于零的任意整数。如果不想使用 VaryByParam 属性提供的功能,请将其值设置为 None
在Global.asax文件中重写GetVaryByCustomString方法
此处是根据用户是否验证来缓存用户控件,即一个通过验证的用户控件,一个未验证的用户控件
1public override string GetVaryByCustomString(HttpContext context, string custom)
2 {
3 // There are two different possible caching cases here so we return a different string in each one.
4 if(context.Request.IsAuthenticated)
5 {
6 // Request is authenticated
7 return "B";
8 }
9 else
10 {
11 // Request is not authenticated
12 return "C";
13 }
14 }
2 {
3 // There are two different possible caching cases here so we return a different string in each one.
4 if(context.Request.IsAuthenticated)
5 {
6 // Request is authenticated
7 return "B";
8 }
9 else
10 {
11 // Request is not authenticated
12 return "C";
13 }
14 }
根据此思路我们可以开发一个依浏览器类型不同的缓存页面的例子
例如我们现有页面WebForm3.aspx,我们可以根据访问着的浏览器类型来做页面缓存
首先在页面中加入
<%@ OutputCache Duration="600" VaryByParam="none" VaryByCustom="ietype" %>
如果定义了自定义字符串,必须在应用程序的 Global.asax 文件中重写 HttpApplication.GetVaryByCustomString 方法
1public override string GetVaryByCustomString(HttpContext context, string custom)
2 {
3 string browserType=context.Request.Browser.Type;
4
5 //custom自定义字符串,它指定哪个缓存的响应被用于响应当前请求
6 //有可能多个页面都定义了自定义字符串,这时可以依靠参数custom来具体区分
7 if ( custom=="ietype" )
8 if ( browserType=="IE6" )
9 //IE6浏览器返回字符
10 return browserType;
11 else
12 if ( browserType=="Opera7" )
13 //Opera7浏览器返回字符
14 return browserType;
15 else
16 //其他类型的浏览器返回字符
17 return browserType;
18
19 return browserType;
20 }
2 {
3 string browserType=context.Request.Browser.Type;
4
5 //custom自定义字符串,它指定哪个缓存的响应被用于响应当前请求
6 //有可能多个页面都定义了自定义字符串,这时可以依靠参数custom来具体区分
7 if ( custom=="ietype" )
8 if ( browserType=="IE6" )
9 //IE6浏览器返回字符
10 return browserType;
11 else
12 if ( browserType=="Opera7" )
13 //Opera7浏览器返回字符
14 return browserType;
15 else
16 //其他类型的浏览器返回字符
17 return browserType;
18
19 return browserType;
20 }
这样设置好后,
当我用IE6访问页面WebForm3.aspx时,服务器缓存这个类型浏览器的页面600秒
当我再用Opera7.54访问页面WebForm3.aspx时,服务器又缓存这个类型浏览器的页面600秒
发表评论
-
图片问题?
2004-06-12 00:58 616图片问题? 例如我有一个ASP.NET工程在目录C:\BBS下 ... -
用Javascript在客户端实现遍历datagrid,DataList控件,像MSN中的全选
2004-07-04 21:56 1417刚刚看了..NET中遍历DataList控件,像MSN中的全选 ... -
ASP.NET状态管理之一(概括篇)
2004-07-14 00:50 631每次将网页发送到服务器时,都会创建网页类的一个新实例。在传统的 ... -
ASP.NET状态管理之二(查询字苻串QueryString)
2004-07-14 01:25 797查询字苻串是追加在URL后的数据(也是我常用的)例如:http ... -
ASP.NET状态管理之三(隐藏域HiddenField)
2004-07-14 01:50 2190ASP.NET 允许您将信息存储在 HiddenFiel ... -
ASP.NET状态管理之四(暂存状态HttpContext.Items)
2004-07-14 17:47 1041ASP.NET提供一个类System.Web.HttpCont ... -
ASP.NET状态管理之七(其他物理数据存放媒体)
2004-07-15 23:25 596ASP.NET状态存储还可以存放在数据库,XML文件,文本文件 ... -
ASP.NET状态管理之六(缓存Cache)
2004-07-15 23:44 1473ASP.NET 提供一个功能完整的缓存引擎,页面可使用该引擎通 ... -
Web.config文件中</appSettings>节点的配置数值读取的2种方法,哪种更快?
2004-10-18 09:37 2378<appSettings> <add key ... -
准备精读开源的.NET代码,希望能坚持
2004-12-08 12:53 981近来无事,把开源的.NET全部找出来,准备精读。 阅读同时想把 ... -
代码阅读总结之ASP.NET StartKit Commerce
2004-12-20 16:47 808ASP.NET StartKit Commerce简单 ... -
asp.net能实现身份认证的EMAIL发送方法(c#版本)
2004-12-28 11:15 4871public void sendMail() ... -
代码阅读总结之ASP.NET StartKit TimeTracker(角色权限之捉虫笔记)
2005-01-17 14:56 645在ASP.NET StartKit TimeTracker中由 ... -
代码阅读总结之ASP.NET StartKit TimeTracker(应用程序路径之处理笔记)
2005-01-24 17:34 636在开发中我们为了整个程序目录结构清晰化,望望会建立许多不同的文 ... -
代码阅读总结之ASP.NET StartKit TimeTracker(数据绑定之困惑笔记)
2005-01-24 18:00 660以前在项目中数据绑定一直用<%# %> 今天在A ... -
Asp.net未处理异常的2种解决方式(个人总结篇)
2005-02-21 15:34 827Asp.net中引发未处理的异常时,我们怎么处理。我总结了2种 ... -
代码阅读总结之Fitch and Mather 7.0(资源文件Resource随笔)
2005-04-21 18:03 656在Fitch and Mather 7.0中利用了大量的资源文 ...
相关推荐
微软经典Fitch and Mather 源代码(C#) 与 Duwamish 有不同哟!
Mather Mather is a powerful, simple-to-use, no BS expression-based computation engine for Android. Powered by Math.js. In addition to basic calculator arithmetic, Mather supports... Variables User-...
Ogilvy & Mather.ppt
绝世好mather作文.doc
源代码的阅读,能快速提升源代码的阅读能力
作为全球大众传媒营销计划的供应商,Ogilvy&Mather深知使用信息技术来实现企业目标的价值和重要性。Ogilvy& Mather过去一直都选择IBM作为其技术合作伙伴,因此,它会很自然地向IBM寻求帮助,帮助为其品牌资产管理...
surMather:sur mather网站
2019年MathorCup高校数学建模挑战赛D题 2019年第九届MathorCup高校数学建模挑战赛 竞赛信息 竞赛简介 为了培养学生的创新意识及运用数学方法和计算机技术解决实际问题的能力,中国优选法统筹法与经济数学研究会决定...
2022年mathercup数学建模比赛d题题解,其中包含思路和论文代码。
英语论文,这是毕业时的一部分,要求把论文相关都写上,还要保证时间
2022年MathorCup高校数学建模挑战赛赛题.rar
这是解决数学问题的 Discord Bot 的代码。 用法 机器人发布到Discord后,您就可以使用该机器人了。 (很快!) 本地运行: 要在本地测试此代码/在您的服务器中使用此机器人: 在创建一个新的机器人应用程序 转到...
naive_mather:Crystal Shard,用于计算基于文本的方程式的结果
与本·马瑟(Ben Mather), 从奔编译Petlab_Jun2019_v8_Horomaka.xlsx 。 我编辑并清理了电子表格中的一些年龄数据。 Ben编写了一个脚本,用于生成其他时间相关的网格,然后提供了网格。 所有脚本和网格都可从...
Mather, N. (1991)。 Woodcock-Johnson 心理教育电池修订版的教学指南。 Brandon, VT: Clinical Psychology Publishing Co., 305 pp., [dollar]42.00 (paper) Psychology in rhe Schools Volume 28. Oclober 1991 ...
Mather, N. (1991)。 Woodcock-Johnson 心理教育电池的教学指南已修订。 Brandon, VT: Clinical Psychology Publishing Co., 305 pp.,[dollar]42.00 (paper) Psychology in rhe Schools Volume 28. Oclober 1991 ...
Mather, N. (1991). An instructional guide to the Woodcock-Johnson psychoeducational battery-revised. Brandon, VT: Clinical Psychology Publishing Co., 305 pp.,[dollar]42.00 (paper) Psychology in rhe ...
Mather, N. (1991). An instructional guide to the Woodcock-Johnson Psychoeducational Battery-Revised. Brandon, VT: Clinical Psychology Publishing Co., 305 pp., [dollar]42.00 (paper) Psychology in rhe...