现在的位置: 首页 > 综合 > 正文

Asp.net输出缓存解析

2012年11月08日 ⁄ 综合 ⁄ 共 418字 ⁄ 字号 评论关闭

基本用法

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

设定页面输入缓存为60秒

第一次访问,通过httpwatch获取到的信息如下

image

(在缓期有效期内)第二次地址栏转到访问和第三次刷新页面访问,通过httpwatch可以看出来,使用了浏览器缓存

clip_image004

(在缓期有效期内)在别的机上访问,得到了相同的内容,使用了服务器内存中的缓存

clip_image006

所以页面输出缓存首先会在服务器会保存一份缓存后,并给客户端返回内容带上有浏览器缓存的http头信息(没有Etag标记但有其它让浏览器缓存的相关标记)。

 

结论:(在缓存有效期内)

同一浏览器访问第二次使用浏览器缓存

不同浏览器访问第一次用服务器端保存下来的缓存,第二次也用浏览器缓存

 

问题:

1 输出缓存会占用服务器更多的内存

2 由于缓存只在服务器的内存中,多web服务器负载将缓存不同内容产生不一致问题

3 asp.net4.0可以对缓存进行扩展,保存到其它地方如memcached中

抱歉!评论已关闭.