如何防止浏览器使用缓存图像?

时间:2014-04-09 08:52:19

标签: javascript html video

我在HTML文档中创建一个伪视频,通过使用新的&#34;帧&#34;每秒30次更新<img>元素的来源。我从局域网(IP安全摄像头)上的URL获取。

在Firefox中,图像似乎被缓存,所以每当我尝试获得一个新的#34;框架时,它会显示启动脚本后获得的第一个图像。

在WebKit浏览器(Chrome&amp; Safari)中,我下载的图像不会被缓存,所以每隔几毫秒就会播放一次&#34;视频&#34;已更新,看起来像一个实际的视频。这就是我想要的Firefox。

我无法控制视频来源。 我无法添加GET参数来强制重新下载,因为当我尝试它时,发送给我的图像将返回空(服务器必须具有特定设置以禁用它们以确保安全性等)

保留此方法时是否有解决方法?有没有更好的方法(请记住,我无法控制源 - 这是查看视频的唯一方法!)。

My script(做好准备 - 它非常匆忙)

2 个答案:

答案 0 :(得分:0)

只需在图片网址末尾添加时间戳或随机数即可。这将绕过缓存。类似的东西:

url += 'c'+ ~~(Math.random() * 10000);

编辑 - 您尝试过哪种方法?您的脚本使用image.src加载图像。你试过XHR吗?如果有,请发布该代码。

据我所知,您有两种选择:

1)改变标题 - 可以通过中间服务器完成。如果您有本地代理或处于添加位置的位置,您可以使用它来篡改标题。无论如何都有点过分。

2)XHR - 虽然我希望XHR的行为与您目前的方法类似,但并不能保证它会如此。因此,它至少值得研究。

答案 1 :(得分:-1)

将缓存清除参数添加到源地址:

container.src = camerasrc + '/cgi-bin/video.jpg' + '?bust=' + (new Date()).getTime();