浏览器缓存机制
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增加时间戳,并在一定的时间内改变时间戳