websocket - javascript大量推送数据如何快速处理?

查看:1135
本文介绍了websocket - javascript大量推送数据如何快速处理?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

后端实现了websocket主动推送,现在想在网页上显示推送的数据,但是由于推送的数据量特别庞大,自己的处理比较缓慢,不但造成了数据推送的延迟,页面也特别卡顿,进行点击button等组件的操作也特别卡顿。我在websocket的on_message下是这样处理的:

var _on_message = function(evt) {
    try {
        var evt_obj = JSON.parse(evt.data);
        if (evt_obj['type'] == 'msg') {
            var data = evt_obj['data'];

            // 屏幕被分成了四块 ,分别推送到四块上;
            // 这里分成四块也是个大问题?
            for (var i = 0; i < _chat_list.length; i++) {
                // 这里也许还有一些正则匹配
                panel_dict[ch].add_msg(data);
            }

        } else {
            console.log("recv msg: ", evt_obj);
        }

    } catch (err) {
        console.error(err);
    }
};

我想这着把数据接收到一个list,在使用setInterval来慢慢处理显示这些数据,但是这样的话数据还是不实时的,有的数据到了但是过了一段时间才显示。头疼ing

本人前端菜鸟,不知道有什么好的处理办法或者解决方案呢?

解决方案

最后除了使用 setInterval,还在推送前拼接 DOM,减少直接的 DOM 操作,目前使用起来还不错。

以上,很久之后的自问自答。

这篇关于websocket - javascript大量推送数据如何快速处理?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆