小程序
小游戏
企业微信
微信支付
扫描小程序码分享
同一个页面在不加setInterval定时器的时候,webSocket收到服务器的数据,马上显示并且是正常的;
加上setInterval,每10毫秒执行一次,webSocket收到的数据会延迟,随着时间的推移 延迟越大,可以排查是服务器发送延迟,应该是阻滞在客户端了,难道跟setInterval有冲突吗?
如果把服务器关掉,小程序会很快把没有显示的数据一个一个显示完!说明小程序是收到数据的!
setInterval和webSocket不能兼容吗???
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你的代码大致是怎么写的呢,是什么需求要加那么频繁的 setInterval 呢
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
setInterval 是独立的跑秒,从10秒循环到0秒,
如果收到webSocket接收的新数据,把跑秒的归10,重新跑到0。
要注意一下性能问题哦
真的啊,我把10毫秒修改成100毫秒,就没有问题了!谢谢你的意见
代码:
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--;
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 });
就这些关键代码
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你的代码大致是怎么写的呢,是什么需求要加那么频繁的 setInterval 呢
setInterval 是独立的跑秒,从10秒循环到0秒,
如果收到webSocket接收的新数据,把跑秒的归10,重新跑到0。
要注意一下性能问题哦
真的啊,我把10毫秒修改成100毫秒,就没有问题了!谢谢你的意见
代码:
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 });
就这些关键代码