【问题标题】:real-time update of table with data coming from websocket using angularjs使用 angularjs 使用来自 websocket 的数据实时更新表
【发布时间】:2012-10-08 11:49:24
【问题描述】:

我需要使用来自网络套接字的数据实时更新表格。

我现在所做的是每次在套接字上获取数据时,我都会将其附加到一个字符串并创建一个二维数组,该数组用于使用 ng-repeat 显示表格。

使用这种方法的性能很慢。此外,这种方法假设我按顺序获取消息,但是我没有按正确的顺序获取数据。

将数据格式化为 html 或 json 并通过 web 套接字发送更好还是发送原始数据更好?

有什么更好的方法?

【问题讨论】:

    标签: angularjs real-time


    【解决方案1】:

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

    以 HTML 格式发送数据不是可行的方法,但在服务器上将数据格式化为 JSON 几乎肯定有助于加快客户端的处理速度。发送小块数据,然后将它们增量附加到客户端上的数组,然后重新排序数据(如果需要)可能会更快。

    另一种选择是使用 Underscore.js's throttle function 之类的东西来限制在 AngularJS 中导致摘要循环的次数。如果您不想在项目中包含所有下划线,也可以使用 just throttle

    【讨论】:

    • 感谢您的回复,我已在服务器上将数据格式化为 JSON,现在将其发送给客户端。
    • 但是我有 2 种类型的数据要显示在 2 个不同的表中,我必须解析 JSON 字符串还是有任何其他方法来区分数据?我也尝试使用 jquery 插件数据表的指令但是我得到一个错误 Object [[object HTMLTableCellElement], [object HTMLTableCellElement]] has no method 'each' at line explicitColumns.push($(elem).text());在 element.find('th').each(function (index, elem) { 我已经包含 DataTables-1.9.4 之后,这可能是个问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    相关资源
    最近更新 更多