微信小程序列表页批量倒计时

Mister.Zhang123 2018-10-26 07:41:30
最近在制作一个批量倒计时效果,拼团购 注:列表页无刷新加载,不可以分页显示。 我是通过php将6个数组获取,放入到倒计时函数中,在函数中重新setdata设置数组,然后页面在wx:for中循环该数组。每秒重复绑定设置。 少量的还好6个线程,但是无刷新继续加载时,我先终止之前的数组变化,然后将concat拼接的新数组重新绑定获取倒计时函数。 越多线程越多,越卡……求大神……怎样弄才能不卡……
...全文
628 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mister.Zhang123 2019-04-10
  • 打赏
  • 举报
回复
感谢你的思路,大概意思我懂了,我试一下,因为从微信小程序还要转换成百度的,所以兼容也要看下,方式这种卡顿,主要是计时器声明数量要少,页面刷新率要局部刷新。谢谢
風灬雲 2018-11-13
  • 打赏
  • 举报
回复
其实还有一个方法应该更加简单;
data里面设置一个nowDate:""//表示当前时间的时间戳;
然后显示的时候用到期时间减去当前时间的结果表示剩余时间;
这样的话遍历也省了;每次只要更新nowDate就可以了
風灬雲 2018-11-13
  • 打赏
  • 举报
回复
比如

data(){
return {
list:[{
time:xxx
},{
time:xxx
},{
time:xxx
},{
time:xxx
}]
}
}

你现在是遍历单个设置定时器,所以有多少条数就有多少个定时器,然后每秒执行多少次setData();
把思路改一下,反正都是一秒钟变一次;为什么不能设置一个定时器,然后在定时器里面设置,统一修改setData

wx.request({
url:"",
....
success:(res)=>{
...按照你自己的逻辑处理
this.setData({
list:res.data
},()=>{
//这里设置一个定时器就可以了
setInterval(()=>{
//这里面遍历 this.data.list,把所有的时间都减去1秒后这调用setData()统一修改
},1000)
})
}
})

这样不就没秒只会执行一次setData()
Mister.Zhang123 2018-11-13
  • 打赏
  • 举报
回复
但是需求必须是 。。。。
風灬雲 2018-11-05
  • 打赏
  • 举报
回复
setData 的执行频率太高会造成卡顿
風灬雲 2018-11-05
  • 打赏
  • 举报
回复
一个定时器不要多个定时器,每次setData()所有数据试试,setData 的执行频率卡顿

3,143

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧