【发布时间】:2018-01-09 03:27:56
【问题描述】:
这是一个关于一般浏览器的问题,但我主要关心的是 Chrome。
假设我在 index.html 文件中有以下 sn-p:
<img src='//path/to/foo.img'></img>
和foo.img 在我的服务器上每小时更改一次。我想在整点预取这张图片,这样当用户刷新页面时,会从浏览器的 HTTP 缓存中读取更新后的图片//path/to/foo.img。
有几件事我不确定:
- 默认情况下是否会缓存 XHR 的响应?
- 如果是这样,它们是否使用与浏览器在获取 img、css、js 等请求时使用的缓存不同的缓存?
- 如果对#2 的回答是否定的,那么是否足以为
//path/to/foo.img发送XHR 以使响应被缓存-然后在刷新页面时被浏览器重新使用?
【问题讨论】:
-
XHR 请求与其他文件缓存在同一个缓存中,并且取决于随请求发送的标头和从服务器接收的标头。但是您应该可以在开发者工具的网络选项卡中自己观察到这一点。
-
一个 POST 永远不会被缓存,但一个 GET 将根据响应中的标头被缓存。这一切都在同一个缓存中,所以你可以做我认为你想做的事情(预加载图像)。按 F12(网络选项卡)并尝试一下,您会很快看到是否/何时缓存了某些内容。 (只是不要对 chrome 向同一路径发送 OPTIONS 请求感到困惑)
-
@kjh 如果答案解决了您的问题,那么您应该接受答案。
标签: javascript html css google-chrome caching