收藏
回答

倒计时和下拉加载更多导致小程序卡死问题,怎么解决?

最近在学习小程序,写了个demo,是商品列表展示页面,每个商品都有一个活动的倒计时效果,同时页面支持下拉加载更多。

我的写法是取回数据之后,正常展示商品,然后遍历商品列表,将各个商品的倒计时(同一方法实现)放到一个对象里,然后在wxml里根据sku取出对应的时间进行展示。

简单代码如下:

//goodsList为商品列表
goodsList.map((item)=>{
          if(!item.isad){
              const listId = item.id;
              //先加载一次,否则会时间位置出现短暂空白
              changeTime(listId, item)
              setInterval(function(){
                  changeTime(listId, item)
              }, 1000)
          }
      })
      //修改时间大对象,listTime为所有商品倒计时时间对象,show.showTimes是格式化时间方法
      function changeTime(listId, item){
          timeObjNew[listId] = show.showTimes(item.startTime, item.endTime)
          _this.setData({
              listTime: timeObjNew
          })

      }

然后在每次翻页加载更多时调用上面方法,开始几页是没问题的,但是到第8页之后就会出现页面卡死的问题,当注释掉setInterval方法后,是可以正常加载更多的。考虑原因应该是定时器导致数据超过了限制,但是不知道具体怎么修改。

希望各位大佬提供下解决思路,帮助小弟解决这个问题,三克油~

最后一次编辑于  08-08  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • aholy
    aholy
    08-14

    请问问题现在解决了吗

    08-14
    赞同
    回复
  • ʚ青哥ɞ
    ʚ青哥ɞ
    08-08

    按商品分类倒计时,不用每个商品都倒计时。

    08-08
    赞同
    回复 1
    • 木风
      木风
      08-09
      返回的是很多品牌商品的活动列表,要求就是每个品牌商品都有倒计时的
      08-09
      回复
问题标签