微信小程序多次触发事件导致页面连续跳转问题以及解决方法

最近在小程序开发过程中,当网络条件差或卡顿的情况下,大多数使用者会认为点击无效而进行多次点击,最后出现多次跳转甚至一直循环跳转的情况。

最后经过多次查阅以及微信小程序官方文档的介绍:

页面在跳转的时候需要一定的时间,在完成跳转前,触发该跳转的事件可能多次发生。

经过断点调试,从调试记录上可以看到触发了多次甚至连续不断的事件,从而导致多次或循环跳转。

以上问题可以通过JS中的函数节流和函数防抖找到解决方法。

例如下图所示:在开发过程中tab页在真机上出现类似问题的频率很高

具体解决方法如下:

使用函数节流(throttle):函数在一段时间内多次触发只会执行第一次,在这段时间结束前,不管触发多少次也不会执行函数。

/utils/util.js:

function throttle(fn, gapTime) {
  if (gapTime == null || gapTime == undefined) {
      gapTime = 1500
  }
  let _lastTime = null
  // 返回新的函数
  return function () {
      let _nowTime = + new Date()
      if (_nowTime - _lastTime > gapTime || !_lastTime) {
          fn.a
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值