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

Javascript 是否可以测试XmlHttpRequest是否会命中缓存而不是服务器?,javascript,internet-explorer,caching,xmlhttprequest,Javascript,Internet Explorer,Caching,Xmlhttprequest,在使用Javascript的IE中,有没有办法知道使用XmlHttpRequest对URL进行常规获取是否会从缓存中提取其数据或命中服务器 如果无法提前知道,是否有方法告诉XmlHttpRequest不要命中服务器,如果可能的话从缓存中取出 澄清一下:我了解浏览器缓存是如何工作的,我试图了解是否可以使用javascript提前确定ajax调用是否会使用浏览器缓存。在我的例子中,我正在编写一个JS库,因此我无法控制服务器的行为,因此我在知道apriori什么是缓存设置/头方面受到很大限制。这实际上

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

如果无法提前知道,是否有方法告诉XmlHttpRequest不要命中服务器,如果可能的话从缓存中取出


澄清一下:我了解浏览器缓存是如何工作的,我试图了解是否可以使用javascript提前确定ajax调用是否会使用浏览器缓存。在我的例子中,我正在编写一个JS库,因此我无法控制服务器的行为,因此我在知道apriori什么是缓存设置/头方面受到很大限制。

这实际上是体面的HTTP用户代理在默认情况下所做的事情:只有当您请求的位置没有有效的缓存项时,它们才会从服务器获取。因此,控制(或至少理解)缓存行为的最佳方法是查看web服务器返回的HTTP缓存头,以获取您在脚本中请求的位置。

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

如果它在缓存中,它将从缓存中提取,您不必告诉浏览器这样做。现在,通常需要相反的方法:即使它在缓存中,有时您也希望它从服务器上新获取。我不明白你的问题。我的问题是:我需要知道它会被从缓存中取出。我提供了一个第三方JS库,希望读取response.text w/o调用服务器调用,这可能会产生副作用。我在response.text上获取的唯一方法是,如果我确信ajax请求不会通过缓存,那么就发出一个“假”ajax请求。我提供了一个第三方JS库,需要在response.text上获取,而不需要点击服务器(希望避免副作用,因为它不是我的服务器/应用程序)。为了做到这一点,如果我确信它不会通过缓存,我将进行一个“虚拟”Ajax调用。所以问题仍然存在,是否有可能知道浏览器缓存中是否有URL,并将使用它?否则,我的代码不能代表主机页进行ajax调用。此外,我是StackOverflow新手,但我的怀疑是,因为这个答案有上升投票权,所以我不太可能获得更多的眼球。你有没有可能在我的任务中否决这一点,看看这是否可以通过JS确定?:)对不起,我不知道有哪种API允许您确定浏览器缓存了什么。只要你不同意我的答案,你认为最好的,你的问题将继续列入“未回答”。我不认为这有多大区别,因为到现在为止,你的问题可能已经排在清单的最后面了。