介绍了页面缓存的原理,即从浏览器向服务器中指定为缓存的页面发送请求时,asp.net框架的处理过程以及浏览器的响应过程
- 浏览器第一次向服务器请求<%@ OutPutCache %>标识的页面时,会在第15,16个管道事件中执行:
- 将response的内容缓存到服务器的内存中
- 将创建缓存的时间(即当时的DateTime.Now)保存到响应报文中的last-Modified 中
- 为响应报文中的Exprise赋值:Exprise=last-Modified+duration
- 在第19个管道事件中将last-Modified和Exprise响应回浏览器
- 浏览器再次向服务器请求同一个页面时:
- 浏览器首先会判断浏览器端的时间有没有超过Exprise.假如没有,则直接从浏览器缓存中获取结果显示给用户
- 将上一次服务器发送回来的last-modified以If-Modified-Since重新发送给服务器,假如在缓存还没失效期间多次请求,则 If-Modified-Since不会
- 在第6,7个管道事件中,
- 获取服务器当前时间
- 判断服务器当前时间-If-Modified-Since是否大于duration,假如大于duration,则表示缓存失效,将在第八个事件中重新创建页面类的对象,在15,16个事件中更新缓存;假如小于duration,则表示缓存还没有失效,则直接从缓存中读取内容返回给浏览器,在第八个事件中不会创建页面类的对象,在第15,16个事件中不会更新缓存。
- 图解
![]()
posted on
2014-07-20 00:28
超文
阅读(
139)
评论()
收藏
举报