繁体   English   中英

使firefox更快地刷新图像

[英]Making firefox refresh images faster

我有一件事,我需要一个网页来从本地客户端计算机流式传输一系列图像。 我在这里有一个非常简单的运行: http//jsbin.com/idowi/34

代码非常简单

setTimeout ( "refreshImage()", 100 );

function refreshImage(){
  var date = new Date()
  var ticks = date.getTime()
  $('#image').attr('src','http://127.0.0.1:2723/signature?'+ticks.toString());
  setTimeout ("refreshImage()", 100 );
}

基本上我在客户机上使用了签名板。 我们希望签名显示在网页中,并让他们看到自己在网页中签名(垫片没有LCD显示在那里)。 所以我设置了一个简单的本地HTTP服务器,它抓取了签名板当前状态的图像并将其发送到浏览器。

这在任何浏览器中都没有问题(在IE7,8和Chrome中测试过),但在Firefox中,它非常迟缓和跳跃,并且不符合10 FPS速率。 有没有人有任何想法如何解决这个问题? 我尝试在javascript中创建非常简单的双缓冲,但这让事情变得更糟。

另外,对于更多信息,似乎Firefox正在以正确的帧速率执行javascript,因为在服务器上请求以恒定速度进入。 但是图像只是不一致地刷新,从每秒5次一直到每秒0次(需要2秒才能刷新)

此外,我尝试使用不同的图像格式都具有相同的结果。 我尝试过的格式包括位图,PNG和GIF(虽然GIF在Chrome中引起了轻微问题但仍有闪烁)

有可能Firefox以某种方式缓存我的图像导致轻微滞后吗? 我发送这些标题:

Pragma-directive: no-cache
Cache-directive: no-cache
Cache-control: no-cache
Pragma: no-cache
Expires: 0

滞后可能是由Firefox处理DNS查询和支持IPv6的方式引起的。

尝试关闭IPv6查找 ,看看是否能解决滞后问题。

好吧事实证明这是Firefox的众多漏洞之一。 我让我的firefox会话运行了好几天。 我刚刚重新启动它并打开了页面,它(以及其他javascript的东西)跑得很快。 重新启动后,我现在可以降低甚至50ms的刷新率,尽管这不是必需的。

所以除了每隔一段时间重启一次firefox之外,没有真正解决这个问题。

也许你已经尝试过了; 你说过你曾试过“双缓冲”,但这并不完全一样。 而不是一个<img>标签的“src”你更新,有几个(10,也许)。 启动它们“display:none”。 处理<img>标签上的“load”事件,其中的功能隐藏了除自身之外的所有其他<img> 让你的间隔计时器(可能是一个间隔计时器,而不是像这样的一系列超时)迭代标签列表,就像现在一样。

那会顺利吗? 我不确定。 我当然会尝试一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM