使用 JavaScript 覆盖客户端的缓存控制标头?

gre*_*law 5 javascript caching cache-control browser-cache

客户端是否可以使用 JavaScript 覆盖和/或忽略动态加载内容(例如异步加载的图像)的 HTTP Cache-Control 标头?

我的基于 JavaScript 的 GIS 应用程序从外部服务器动态请求图像,该服务器发送以下标头及其响应:

Cache-Control:max-age=0,must-revalidate
Run Code Online (Sandbox Code Playgroud)

这会导致浏览器发送对相同图像的重复请求(以及 If-None-Match 请求标头),这总是导致 HTTP 304 Not Modified 响应,因此无论如何都会使用缓存,但只会在延迟之后使用。

我已经知道图像没有改变,但我无法控制服务器发送的缓存控制标头,所以我想在显示图像时强制使用本地浏览器缓存,而不必先重新验证服务器。

是否可以在客户端更改此设置?

sym*_*ean -2

您应该能够通过执行location.reload(true)从 javascript 覆盖本地缓存,但并非所有浏览器都能正常运行- 使用框架重新填充非 html 内容