后端实现了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
本人前端菜鸟,不知道有什么好的处理办法或者解决方案呢?
相关分类