我正在做一件事,我需要一个网页来从本地客户端计算机流式传输一系列图像。我在这里有一个非常简单的运行: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 );
}
基本上,我在客户端机器上使用了一个签名板。我们希望签名显示在网页中,并让他们看到自己在网页中签名(pad 没有 LCD 可以直接显示给他们)。所以我设置了一个简单的本地 HTTP 服务器,它获取签名板当前状态的图像并将其发送到浏览器。
这在任何浏览器中都没有问题(在 IE7、8 和 Chrome 中测试过),但在 Firefox 中它非常滞后和跳跃,并且不符合 10 FPS 的速率。有没有人对如何解决这个问题有任何想法?我试过在 javascript 中创建非常简单的双缓冲,但这只会让事情变得更糟。
此外,关于更多信息,Firefox 似乎正在以正确的帧速率执行 javascript,因为在服务器上请求以恒定速度传入。但是图像只是不一致地刷新,从每秒 5 次一直到每秒 0 次(刷新需要 2 秒)
我也尝试过使用不同的图像格式,但结果都是一样的。我尝试过的格式包括位图、PNG 和 GIF(尽管 GIF 在 Chrome 中引起了一个小问题,闪烁)
有没有可能是 Firefox 以某种方式缓存了我的图像,导致了轻微的延迟?不过,我发送了这些 header :
Pragma-directive: no-cache Cache-directive: no-cache Cache-control: no-cache Pragma: no-cache Expires: 0
最佳答案
延迟可能是由 Firefox 处理 DNS 查询和支持 IPv6 的方式造成的。
尝试 turning off IPv6 lookups看看是否能解决滞后问题。
关于javascript - 使 firefox 刷新图像更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908331/