我正在尝试使用GET请求从服务器检索图像。图像不断变化,所以我想每秒抓取几次图像(目的是显示图像并最终模仿视频)。但是,GET请求出了问题。无论我尝试获取图像的速度有多快(每1秒,100毫秒等尝试一次),它每5秒钟只返回一个新图像。它的行为就像在某处有一个缓存的图像,它只是每隔5秒更新一次缓存,并在其他时间返回旧的,重复的图像。
我已经做了以下尝试来解决问题:
然而它仍然只是每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();
答案 0 :(得分:2)
在http://tomcat.apache.org/tomcat-5.5-doc/config/context.html找到此信息 请阅读此条目..
缓存条目重新验证之间的时间量(以毫秒为单位)。如果未指定,则默认值为5000(5秒)。
可能这是您问题的根源
答案 1 :(得分:0)
想一想:
假设您将间隔设置为500毫秒。
您的服务器需要1秒才能接听请求。
因此,在等待第一个请求时,超时函数在同一个对象上发出另一个请求。
这通常会停止第一个请求。
第二个仍然没有,所以什么都不会改变。
等等。
经过一段时间后,这会“退回”,并且你会得到任意图像。
那么,您服务器的响应时间是多少?
如果服务器速度变慢,则对同一对象的更新速度无关紧要。
您可能在加载时对图像有一些锁定,以防止发出请求而无需等待它们完成?
答案 2 :(得分:0)
两个建议:
Expires:
标头,将其设置为几秒钟答案 3 :(得分:0)
我试图做一次类似的事情,说实话,图像不应该是视频。速度限制为五秒,所以你不要过度使用服务器和DDOS(至少这是我认为的,但不是很确定)。您可以使用HTML5标记流式传输视频。您可能会考虑我的好朋友Google向我展示的这些网站
This is one
Try this one too