火狐浏览器下的Websockets延迟
Websockets delay under Firefox
>我创建了一个简单的WebSockets服务器,它每20毫秒发送一个小数据包,仅用于测试目的。然后,我用纯 WebSocket API 编写了一个简单的浏览器客户端,它连接到服务器并在每次收到数据包时打印Date.now()
。
var ws = new WebSocket('ws://localhost:8080');
ws.onmessage = function(){ console.log(Date.now()); };
当我在谷歌浏览器中启动客户端时,数据包之间的延迟是一致的,总是在 19 到 21 毫秒之间。当我在火狐下启动它时...呃,延迟在 3 到 114 毫秒之间跳跃。火狐有什么问题,有什么解决方法?默认情况下是否启用了某种缓冲?
测试是在Linux下的本地主机上完成的,Firefox版本为38.0.5,数据包大小为4字节,没有运行其他代码,因此垃圾收集器不是问题。我还同时启动了两个浏览器,结果是一样的。
经过大量测试,结果相当有趣 - console.log
Firefox 下的实现是万恶之源。频繁调用它会导致浏览器短暂挂起,从而使所有计时器和事件不同步。在 Firefox 下调试定时事件时,目前最好将日志存储在数组中并稍后打印。
相关文章:
- 可以简化嵌套的延迟Q Promises解析吗
- onclick函数需要双击,因为类分配延迟
- 使用Native Sockets在Android中实现WebSockets
- 更多延迟动画
- 对父作用域的指令更新延迟了一步
- 为JS函数添加延迟
- 带有延迟的循环每次应运行5次
- 关键帧之间的css3动画延迟
- 如何在有延迟的情况下对两个代码进行积分
- 如何为.css状态的更改添加延迟
- Angular.js延迟控制器初始化
- 在延迟时设置Whois脚本
- 如何在Javascript中延迟setInterval
- 如何在一个元素动画之后延迟
- 如何将一个方法延迟到另一个方法首先完成,javascript
- jQuery延迟了ajax调用的循环
- 如何减少在移动网络应用程序上播放声音的延迟
- 如何将GreaseMonkey中的XMLHttpRequest延迟到目标页面加载完成
- 正在监视WebSockets延迟
- 火狐浏览器下的Websockets延迟