收藏
回答

全局计时器导致页面卡顿

我在app.js定义了一个全局的计时器,定时每10秒去拉取一次结费通知,现在发现有时候会导致点击页面上的按钮没反应的问题,不知道有没有遇到过这种问题的老铁,能不能给个思路

回答关注问题邀请回答
收藏

1 个回答

  • 晨
    2018-06-25

    定时器中是否有频繁的setData操作?

    2018-06-25
    有用
    回复 4
    • 肖
      2018-06-25

      没有,只是查询是否有结费通知,有结费通知就会跳转另一个页面,没有结费通知的话,就没处理

      2018-06-25
      回复
    • 晨
      2018-06-25回复

      麻烦确认下去掉定时器后是否还会有按钮点击没反应的问题?是否方便提供下定时器执行的代码?

      2018-06-25
      回复
    • 肖
      2018-06-25回复

      app.js文件:

      App({

          

          setInterval(this.getTravelOrder, 10000)

      },

      getTravelOrder: function () {

      console.log('token==='+this.globalData.token)

      if (this.globalData.token){

      //已登录,请求结费通知

      var config = require('./config.js');

      wx.request({

      url: config.getListNotReadOprecSettles,

      data: {

      uid: this.globalData.telPhone,

      },

      header: {

      'content-type': 'application/json'

      },

      method: 'GET',

      success: function (res) {

      console.log('结费通知消息==='+JSON.stringify(res))

      if (res.data.success == 1008) {

      console.log("无已结算订单")

      } else if (res.data.success == 1000) {

      var pageData = res.data.data;

      wx.redirectTo({

      url: '/pages/Umbrella_fee/Umbrella_fee?orderId=' + pageData[0].orderId + "&goodsNo=" + pageData[0].goodsNo

      });

      }

      },

      fail: function (res) {

      console.log('获取结费通知失败===' + JSON.stringify(res))

      }

      })

      }else{

      console.log('app.js计时器用户没有登录')

      }

      },


      globalData: {

      telPhone: '',//手机号

      isLogin: false,//登陆状态

      hasFinishRegister: 0,//用户的标识状态

      windowWidth: 0,//屏幕的宽

      windowHeight: 0, //屏幕的高

      cost: '',//骑行消费金额

      use_time: '',//骑行时间

      balance: -1,//钱包余额

      orderId: '',//本次骑行的订单号

      accountDeposit: 0,//用户的押金余额

      realNameState: '0',//实名制认证的状态

      state: false,//自行车的状态

      isScanCode:true, //是否可以扫码

      token:'', //登录的token

      userInfo: null,

      latitude: '',

      longitude: '',

      isFinishOrder: true,

      isFirst:true,

      inviter:'', //邀请人账号

      isRead:true,

      depositCount:"0",

      }

      })


      2018-06-25
      回复
    • 肖
      2018-06-25回复

      这种问题是偶发性的,去掉计时器没试出来


      2018-06-25
      回复
登录 后发表内容