javascript - 浏览器 GET 请求返回旧图像

标签 javascript jquery html image tomcat

我正在尝试使用 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/

相关文章:

html - 我似乎无法让我的代码在页脚中居中并在屏幕上拉伸(stretch)

javascript - react 条件渲染,在渲染中返回数组, react 16

javascript - 如何将数据从服务器传递到 Service Worker

javascript - 尝试通过 NodeMailer Mailgun 传输发送 PDF 时出现 400 错误

jquery组合事件函数

css - Logo 向左浮动,内容向右浮动

javascript - FlipClock iPhone 在翻盖标签内扩展数字

javascript - 获取 HTML 源代码作为字符串

javascript - 附加一个在生产中不起作用的表

html - 如何使 UIWebView 的 html 主体透明