Javascript 浏览器更新传入数据的视图,而不是逐个更新
对于一个工业项目,我正在测试WebSocket的性能 我的服务器端代码在一个循环中发送10000个websocket事件,其中包含随机生成的数据。客户机在表中显示这些数据包 问题是:客户端在收到每个数据集后都不会显示它。相反,客户端在接收到所有数据集后更新视图 我在socket.io服务器端使用Node.js 第一:生成随机数据Javascript 浏览器更新传入数据的视图,而不是逐个更新,javascript,node.js,websocket,socket.io,Javascript,Node.js,Websocket,Socket.io,对于一个工业项目,我正在测试WebSocket的性能 我的服务器端代码在一个循环中发送10000个websocket事件,其中包含随机生成的数据。客户机在表中显示这些数据包 问题是:客户端在收到每个数据集后都不会显示它。相反,客户端在接收到所有数据集后更新视图 我在socket.io服务器端使用Node.js 第一:生成随机数据 var data = []; for(var i = 0; i<10000; i++){ data[i] = { nr: i,
var data = [];
for(var i = 0; i<10000; i++){
data[i] =
{
nr: i,
x: Math.floor( Math.random() * 100 ),
y: Math.floor( Math.random() * 100 )
};
}
var数据=[];
对于(var i=0;iYou正在立即发送它们,这几乎是一次发送它们并锁定浏览器。因此,您是否建议降低它们的速度(使用setTimeout)?速度是套接字的一个参数…您不必这样做,但当您尝试更新UI 10000次时,它肯定会延迟/挂起。
for(var i = 0; i < data.length; i++){
socket.emit('dataset', data[i]);
}
var socket = io.connect('...');
var table= $('...');
socket.on('dataset', function (data) {
var tr = $('<tr/>').appendTo(table);
var nr = $('<td/>')
.text(data.nr)
.appendTo(tr);
var x = $('<td/>')
.text(data.x)
.appendTo(tr);
var y = $('<td/>')
.text(data.y)
.appendTo(tr);
});