浏览器缓存机制

1、右键刷新、F5、ctrl+F5、直接在地址栏按enter操作发送请求、点击页面内的按钮和window.open的区别

  直接在地址栏按enter操作发送请求、点击页面内的按钮和window.open:

    无缓存、发送请求并返回数据

    有缓存但已过期,发送请求,并同时发送Last-Modifed、Etag等校验信息,如果无改动则返回304,有改动返回200

    有缓存且没过期,不发送请求,直接使用缓存

  F5、右键刷新:

    无缓存、发送请求并返回数据

    有缓存,不管有没有过期,都会发送请求并携带Last-Modifed、Etag等校验信息,如果无改动返回304,有改动返回200

  ctrl+F5:

    忽略缓存,直接发送请求并忽略是否修改,返回200

2、缓存机制

  通过Expires设置过期时间为http1.0使用,现在默认为http1.1,基本不用,

  http1.1通过Cache-Control的max-age来控制过期时间,

  通过Last-Modifed、Etag与服务器中被请求文件的最近修改时间进行比对,如果发现最后修改时间教新则返回200和文件,否则返回304状态

3、

4、jQuery发送ajax请求时对缓存的设置

  cache 默认为true,即缓存数据。设置为 false则每次都重新发送请求并重新获取数据。

  ifModified设置为 true,则发送请求进行比对,如果没有修改则返回304。

  为url增加时间戳,并在一定的时间内改变时间戳  

 

 

posted @ 2013-09-24 22:43  charling  阅读(181)  评论(0编辑  收藏  举报