是否可以测试XmlHttpRequest是否会命中缓存而不是服务器?

时间:2009-12-14 16:15:20

标签: javascript internet-explorer caching xmlhttprequest

在使用Javascript的IE中,有没有办法知道使用XmlHttpRequest对URL进行常规GET是否会从缓存中提取数据或者命中服务器?

如果事先没有办法知道,有没有办法告诉XmlHttpRequest没有命中服务器,而是尽可能从缓存中拉出来?

澄清:我理解浏览器缓存是如何工作的,我试图理解我是否可以使用javascript预先确定ajax调用是否会使用浏览器缓存。在我的情况下,我正在编写一个JS库,所以我不控制服务器的行为,所以我在知道apriori什么缓存设置/标题方面受到高度限制。

2 个答案:

答案 0 :(得分:1)

它实际上是正常的HTTP用户代理默认执行的操作:只有当您请求的位置没有有效的缓存条目时,它们才会从服务器获取。因此,控制(或至少理解)缓存行为的最佳方法是查看Web服务器为您在脚本中请求的位置返回的HTTP缓存头。

答案 1 :(得分:0)

在我看来,你永远无法确定某些内容是否被缓存,因为即使它在某一点上,也可能在之后立即失效。您可以做的是通过在请求中添加随机查询字符串参数来强制浏览器访问服务器。