一个伴随ASP.NET从1.0到4.0的OutputCache Bug
来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 03:58 点击:次
我们先来一睹这个Bug的风采!
在一个.aspx文件中增加OutputCache设置,代码如下:
<%@ OutputCache Duration="300" VaryByParam="*"%>
上面的设置表示:缓存5分钟,根据不同的查询字符串更新缓存。Location使用的是默认值Any,也就是可以在浏览器、代理服务器、Web服务器三个地方进行缓存,在Response Headers中的体现就是Cache-Control:public, max-age=300。(如果你要用CDN加速,Cache-Control就要用public)。
然后,我们在Firefox浏览器中访问这个页面,并打开Firebug,见下图:
第一次访问,返回状态码为"200 OK",正常。这里Response Headers中的Vary:Accept-Encoding是因为IIS启用“动态内容压缩”产生的,如果不启用,就不会出现。
这时缓存应该被建立起来了,我们按F5刷新一下浏览器,看一下结果,见下图:
第二次访问,返回状态码为"304 Not Modified",浏览器缓存生效,这也是我们期望的。
但是,请注意一下上图中的Vary:*,它会让浏览器的缓存失效,我们再按一下F5验证一下。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>