微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

浅谈Ajax的缓存机制

Ajax的缓存机制和浏览器处理资源时的缓存机制是一样的。

三条简单规则:

只要是URL相同的GET请求,浏览器会使用缓存(当然还要看服务器的Cache-Control/Expires/Last-Modified/ETag头的设置)。
只要是POST请求,浏览器都不会缓存。
Https的请求,浏览器不会缓存(绝大数情况如此,但是也有例外,据说FF浏览器是例外)。

补充:

在URL中拼入随机查询字符串可以使浏览器认为这是一个新的请求,从而不使用缓存。
在Ajax的请求中设置Http头: If-Modified-Since:0,告诉服务器要新的内容

补充说明:

一般情况下,用户手动触发浏览器刷新(windows:F5 MacOS:command+R),浏览器会忽略资源的Cache-Control/Expires头的设置,而去连接服务器。无论是页面刷新还是Ajax刷新都是如此。但我听说,IE浏览器不遵循这个规则。也不知道是不是所有版本的IE浏览器都是这样。如果有哪位大侠清楚这个,不吝赐教。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐