Ajax请求缓存:“怪异”的行为

时间:2014-10-27 11:22:25

标签: javascript jquery ajax caching xmlhttprequest

我有一个javascript应用程序,它通过RESTful API请求对象。在许多情况下,我需要在应用程序的不同部分获得相同的对象;而不是手动缓存它们(例如在对象内),我想利用浏览器缓存。

所以,我让服务器设置了Cache-control: public, max-age=30标头,但显然响应并不总是来自缓存。

奇怪的是,如果两个条件都适用,似乎通过jQuery发出的请求只缓存

  • window "load"事件处理程序
  • 中运行
  • 包裹在setTimeout(..., 0)

使用普通XMLHttpRequest时,显然足以满足上述条件中的至少一个,以便使用缓存版本。

以下是完整的示例代码,以及HTTP响应等:https://gist.github.com/rshk/82ff17d16d363b6b71cf

有人对此有解释吗?

(我在window加载处理程序中包装代码执行完全没问题,实际上它已经是,但是必须在setTimeout(..., 0)中包装请求只是很奇怪..)。

0 个答案:

没有答案