我正在尝试使用 GET 请求从服务器检索图像。图像在不断变化,所以我想每秒抓取几次图像(目的是显示图像并最终模仿视频)。但是,GET 请求出了点问题。无论我尝试获取图像的速度有多快(每 1 秒、100 毫秒等尝试一次),它只会每 5 秒返回一个新图像。它的行为就像某处有一个缓存的图像,它只每 5 秒更新一次缓存,其他时间返回旧的、重复的图像。
我已执行以下操作以尝试隔离问题:
- 验证服务器端的图像实际上每 100 毫秒左右更新一次,这意味着网页确实为其大部分 GET 请求返回了旧图像,
- 通过开发人员选项和以隐身模式运行网页来关闭浏览器缓存。顺便说一下,这是 Chrome。
- 通过在配置文件中设置 maxKeepAliveRequests = 1(禁用)来关闭 Tomcat 服务器中的 keepalive。
然而,它实际上仍然只是每 5 秒检索一次新图像。
Example Request Headers:
Cache-Control: no-cache
Connection: keep-alive <-- Could this be the problem?
Pragma: no-cache
Example Response Headers:
Cache-Control: no-cache
Cache-Control: no-store
Connection: close
Pragma: no-cache
Server: Apache-Coyote/1.1
我的查询(每次加载图像时都会延迟一段时间后执行):
document.getElementById("videoDisplay").src = filename + "?random="+(new Date()).getTime();