setInterval导致webSocket数据延迟
发布于 6 年前 作者 jing55 19645 次浏览 来自 问答

同一个页面在不加setInterval定时器的时候,webSocket收到服务器的数据,马上显示并且是正常的;

加上setInterval,每10毫秒执行一次,webSocket收到的数据会延迟,随着时间的推移 延迟越大,可以排查是服务器发送延迟,应该是阻滞在客户端了,难道跟setInterval有冲突吗?

如果把服务器关掉,小程序会很快把没有显示的数据一个一个显示完!说明小程序是收到数据的!


setInterval和webSocket不能兼容吗???

2 回复

你的代码大致是怎么写的呢,是什么需求要加那么频繁的 setInterval 呢

代码:

onload里面:setInterval(that.clockupdate2,10);

clockupdate2:function(){

var that = this;

if (app.globalData.websocketopen == false) {

return;

}

var m_nums = that.data.m_nums;

var s_nums = that.data.s_nums;

if (m_nums == 0 && s_nums == 0) {

//return;

}

if (s_nums == 0) {

s_nums = 99;

if (m_nums == 0) {

m_nums = 9;

} else {

m_nums–;

}

} else {

s_nums–;

}

var m_nums_str = m_nums;

var s_nums_str = s_nums;

if (m_nums < 10) {

m_nums_str = ‘0’ + m_nums;

}

if (s_nums < 10) {

s_nums_str = ‘0’ + s_nums;

}

that.setData({

m_nums_str: m_nums_str,

s_nums_str: s_nums_str,

m_nums: m_nums,

s_nums: s_nums

});

}

然后wensocket收到信息:

that.setData({ m_nums: 9, s_nums: 99 });

就这些关键代码

回到顶部