ASP.net中常用的缓存方式

1)页面缓存(对整个页面进行缓存)

<%//Response.AddHeader("Last-Modified", DateTime.Now.AddHours(-1).ToString("r"));%>
<% Response.AddHeader("Cache-Control", "max-age=86400"); %>
<%//Response.AddHeader("Date", DateTime.Now.AddMinutes(-59).ToString("r"));%>

<%@Page OutputCache VaryByParams=”classid;page” Duration=”3600” %>

.net2.0中为:
<%@OutputCache VaryByParam=”classid;page” Duration=”3600” %>

你就可以有效的利用第一次请求里生成的页面输出缓存内容,3600秒后重新生成一道页面内容。这种技术其实也是运用一些低层的Cache API来实现。用页面输出缓存有几个参数可以配置,如上面所说的VaryByParams参数,该参数表示什么时候触发重输出的条件,也可以指定在 Http Get或Http Post 请求模式下缓存输出。

例如当我们设置该参数为VaryByParams=”classid;page”的时候,default.aspx?classid=3&page=1 请求的输出都会被缓存起来。没有参数,或不用参数时用none。如果传递的参数不止一个,那么即使字符串参数与值都相同,但排列次序不同,那么在请求页面时,也将生成不同的缓存页。例如default.aspx?first=1&last=1 和default.aspx?last=1&first=1虽然参数完全相同,但由于排列次序不同,将生成两个不同的缓存页。

  许多人都没有意识到当用页面输出缓存的时候,asp.net也会生成HTTP头集(HTTP Header)保存在下游的缓存服务器中,这些信息可以用于Microsoft Internet安全性中以及加速服务器的响应速度。当HTTP缓存的头被重置时,请求的内容会被缓在网络资源中,当客户端再次请求该内容时,就不会再从源服务器上获得内容了,而直接从缓存中获得内容。

  虽然用页面输出缓存不提高你的应用程序性能,但是它能减少了从的服务器中加载已缓存页面内容的次数。当然,这仅限于缓存匿名用户可以访问的页面。因为一旦页面被缓存后,就不能再执行授权操作了。






2)片断缓存(对页面的某一部分,如某个User Control进行缓存)

<%@ OutputCache Duration="60" VaryByParam=”TextBox1;TextBox2” %>

在ASP.net中,除了在页面范围内使用缓存,也还可以针对User Control使用Output Cache参数实现对用户控件的缓存。同样的,一个页面中相同类型的控件也可以有多个不同的缓存。可以根据参数来实现不同的缓存。页面缓存和片断缓存可以同时使用。


3)数据缓存

数据缓存是一种强大而又非常简单的缓存机制,它可以在缓存区中为每个应用程序保存各种对象,这些对象可以根据http的请求被调用,但是在各个不同的应用程序中这些对象都是私有的。
数据缓存是通过Cache类来实现的。当应用程序建立时,一个Cache类就同时被建立,缓存实例的生存周期就是应用程序的生存周期,它会随着应用程序的重新运行而重建,通过Cache类的方法,我们可以将数据对象放入缓存区,然后通过关键字匹配寻找并使用这些对象。
Cache类通过一个借口来控制所有需要缓存的内容,包括规定缓存的时间和缓存方式,可以通过如下方法添加缓存对象:

Cache[“关键字”] = 关键字的取值;

然后通过下面的方法来访问这个对象:

string mKeyValue = “”;
if(Cache[“关键字”] != null)
{
mKeyValue = Cache[“关键字”];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值