在我的 Web 应用程序中,我们提供所有带有 24 小时有效 HTTP 缓存标头的图像,以及 ETags。但有时 Javascript 客户端应用程序有理由怀疑图像可能已更新。在这些情况下,我想强制浏览器重新验证图像缓存,而不实际破坏缓存。
例如,我得到一个用户记录(JSON 格式),其中包含最近的 LastUpdated 日期。LastUpdated 日期更改的可能原因有多种:用户可能更改了昵称、加入了新版块或更改了图像。所以很有可能图像没有改变,但我们需要检查。
我知道我可以重新请求带有附加到 URL 的缓存中断器的图像。但这将强制图像重新加载,无论它是否已更改,导致浏览器缓存中有两个条目,并迫使我用新的 url 更新我的所有图像。我真正想要的是让浏览器重新请求相同的 URL,并在请求中发送正确的 If-None-Match 和/或 If-Modified-Since 标头,这样如果图像没有更改,它将获得 304 .
有没有办法在 Javascript 中实现这一点?