浅谈Ajax的缓存机制

时间:2021-05-18

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浏览器都是这样。如果有哪位大侠清楚这个,不吝赐教。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章