我正在尝试使用 GET 请求从服务器检索图像。图像在不断变化,所以我想每秒抓取几次图像(目的是最终显示图像和模仿视频)。但是,GET 请求出了点问题。无论我尝试获取图像的速度有多快(每 1 秒、100 毫秒等尝试一次),它只会每 5 秒返回一张新图像。它的行为就像某处有缓存图像,并且它仅每 5 秒更新一次缓存,所有其他时间都返回旧的、重复的图像。
我已完成以下操作以尝试找出问题所在:
- 已验证服务器端的图像实际上每 100 毫秒左右更新一次,这意味着该网页确实为其大部分 GET 请求返回了旧图像,
- 通过开发者选项和以隐身模式运行网页来关闭浏览器缓存。顺便说一下,这是 Chrome。
- 通过在配置文件中设置 maxKeepAliveRequests = 1(禁用)关闭 Tomcat 服务器中的保持事件。
但它实际上仍然只是每 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();
最佳答案
在 http://tomcat.apache.org/tomcat-5.5-doc/config/context.html 找到这个 在那里阅读这篇文章..
缓存TTL
缓存条目重新生效之间的时间量(以毫秒为单位)。如果未指定,则默认值为 5000(5 秒)。
这可能是你问题的根源
关于javascript - 浏览器 GET 请求返回旧图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16566533/