1

我已经搜索过这个问题的答案,但大多数问题似乎与我的相反,即缓存在其他问题中根本不起作用。我的问题是 Chrome 按预期处理图像缓存,但 Firefox 和 IE9 似乎永远缓存,即使被告知只缓存 2 分钟。

我正在生成图像并使用ExpiresCache-Control: max-age标头返回浏览器。我没有设置Last-Modified标头。使用 Chrome 版本 23、Firefox 版本 11 (Linux) 和 Firefox 版本 16 (Windows) 和 IE9 进行测试。

观察 HTTP 响应,所有三个浏览器都获取图像并显示正确的过期时间(未来 2 分钟)。所有显示响应 = 200。

接下来我使用 javascript 来更改 IMG SRC。更多 HTTP 响应 = 200。当我返回到以前获取的图像时,没有对服务器的请求 - 它是从浏览器缓存中加载的。这对所有 4 个浏览器都是正确的。

等待 2 分钟以上,然后重试。Chrome 向服务器发出请求并接收返回 HTTP 响应 = 200 的图像。这是我所期望的。

但是 Firefox 或 IE9 都不会再次向服务器请求图像。
如果我清除浏览器缓存(使用工具,而不是 shift-reload),Firefox 将重新加载,但 IE9仍然不会重新加载。好的,我们已经知道 IE9 有多蹩脚了。

我当然希望我不会因为没有发现这个问题已经得到解答而被撕碎。

4

0 回答 0