使用AngularJS实现基于WebSocket的表格实时更新

6
我需要实时更新一个表格,数据来自于网络套接字。目前我的做法是每次从套接字获取数据时就将其附加到一个字符串中,并创建一个双重数组,用ng-repeat显示该表格。但是这种方式的性能相当慢。此外,这种方法假定我按顺序接收消息,但实际上我没有按正确的顺序接收到数据。将数据格式化为html或json格式并通过web socket发送,还是直接发送原始数据更好呢?您有更好的方法吗?
1个回答

0

如果您每次从该字符串重新创建二维数组,那么更快的方法是仅将新数据推送到数组中。

将数据作为HTML发送不是正确的方法,但在服务器上将数据格式化为JSON几乎肯定会帮助加速客户端的速度。将小块数据发送并逐步将它们附加到客户端的数组中,然后重新排序数据(如果需要)可能会更快。

另一个选择是使用类似于Underscore.js的限制函数来限制您在AngularJS中引起摘要周期的次数。如果您不想将underscore全部包含到项目中,则可以使用just throttle


谢谢您的回复,我已经在服务器上将数据格式化为JSON并发送给客户端了。 - user1755191
然而,我有两种类型的数据需要在两个不同的表格中显示,我是否需要解析JSON字符串,还是有其他方法来区分数据?同时,我尝试使用jquery插件datatables的指令,但是出现错误Object [[object HTMLTableCellElement],[object HTMLTableCellElement]]没有'method'each'。在行之后explicitColumns.push($(elem).text()); element.find('th').each(function (index, elem) { 我已经包含了DataTables-1.9.4,这可能会造成问题吗? - user1755191

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接