温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么进行ASP.NET页面输出缓存

发布时间:2021-10-28 15:51:48 来源:亿速云 阅读:96 作者:柒染 栏目:编程语言

今天就跟大家聊聊有关怎么进行ASP.NET页面输出缓存,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

最近因项目要求,需要研究ASP.NET缓存,可是查阅了书本,msdn,网上后有点失望,真是天下文章一大抄啊,大家讲来讲去都是那么几点,没有条理,没有重点,也没有心得,所以我决定自己来写一篇,当然,我是没有能力来改变这一现象的,只是写来自己备忘罢了。

首先有几点要说明:

1.个人认为缓存只有两种:ASP.NET页面输出缓存与应用程序数据缓存。一般大家也是这么认为的,但是有另外一部份人却把这两个部份分了又分,搞出三五种出来。这就让人感觉很多余了。

2.所谓控件缓存,其实是用户控件缓存。可能是我理解有问题,我一开始还以为那种html控件,web控件也可以进行缓存的。所以说定义名称要定义清楚。

3.实现缓存有两种方式:在aspx页面的顶部写页处理指令或者在cs代码里写代码(又叫缓存API),一种是静态设置,一各是动态设置。网上总有些人喜欢说来说去又不总结清楚,搞的人很烦。

4.实际上只要用到了缓存就一定有缓存依赖。只是有些不那么明显。在我看的文章里一般都把缓存依赖单独作为一章讲解,这是好事,因为在缓存的高级技术里缓存依赖是很重要的,但这并不代表有些缓存就没有缓存依赖。

好了,下面言归正传。我只讲常用的东东。

ASP.NET页面输出缓存。其实用户控件缓存跟它没有大的区别,只有一个location不能使用,在这里就一并讲了吧。
page指令:

<%@ OutputCache Duration="10" VaryByParam="*" VaryByControl="txtInput" %>

OutputCache是指令名。Duration是缓存时长,单位是秒。VaryByParam是跟据什么进行缓存。有两个特殊的值:none表示不随任何参数的不同而缓存,就是只缓存一个版本,表示随任何参数的不同而缓存,表示只要参数发生变化,就缓存一个新版本。VaryByControl是跟据控件名进行缓存。这里的控件是指一般的服务器控件,不能是用户控件,不然会出现意想不到的结果。

缓存API:
虽然ASP.NET页面输出缓存与用户控件缓存在页面指令方面差不多,但在api上面有所区别

页面缓存api:
映射的是System.Web.HttpCachePolicy类。
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(3));

***句对应的是Location,是说缓存在哪,public是哪里都缓存,nocache是都不缓存,private是客户端缓存,还有其它几个选项。比较关注的是:客户端,代理服务器,服务器。
第二句对应的是Duration,是说缓存时长,这是个绝对时间,是说到了那个时就是取消缓存。Response.Cache.VaryByParams["none"] = true;
对应的是VaryByParam用中括号括起参数,中间可用分号分隔多个参数,true表示启用此参数。没有对应VaryByControl的。

Response.Cache.SetSlidingExpiration(true);
当用了这一句的时候,所有缓存设置都不启作用了,原因是这个属性是用给代理服务器之类的处于浏览器和Web服务器之间的缓存使用的,而不是给Web服务器本身的.是特意设计成这样的.Response.Cache.SetNoServerCaching(),表示取消当前所有服务器缓存。

看完上述内容,你们对怎么进行ASP.NET页面输出缓存有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI