一个伴随ASP.NET从1.0到4.0的OutputCache Bug
来源:网络 责任编辑:admin 发表时间: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验证一下。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 进入详细评论页>>
今日头条
更多>>您可能感兴趣的文章
- asp.net js模拟Button点击事件
- ASP.NET数据格式的Format--DataFormatString
- Asp.net MVC源码分析--Model Validation(Client端)实现(2)
- winform下通过webclient使用非流方式上传(post)数据和
- MVC中一个表单实现多个提交按钮(一个action搞定
- asp.net 六大内置对象(2)
- Pro ASP.NET MVC 3 Framework学习笔记之九
- 教你如何来恢复一个丢失的数据文件
- 谈.Net委托与线程——创建无阻塞的异步调用(一
- 微软ASP.NET站点部署指南(11):部署SQL Server数据