关于防抖节流操作

一、为什么要防抖节流

  • 一个功能本身就是要限制被调用的次数。例如用户请求登陆的次数不能太频繁。
  • 一个功能没有必须被频繁调用。例如,在输入框中输入信息之后,输入内容的每一次变化都需要去后端取回后台建议的数据。举个例子:用户在极短的时间内连续输入"javascript",这10个字符,如果不做降频处理的话就会发出10次请求,每次请求的关键字依次是"j",“ja”,“jav”,…“javascript”。而其实对用户真正有用的可能只是搜索"javascript"的结果,那这样的话,前几次的请求大概率都是无用的。

二、防抖

某事件函数被高频调用 ,我们希望降低被调用频率,可以对函数进行n秒防抖处理
当函数被调用时候 不会立刻执行 而是在规定时间之后执行(类似LOL英雄回城)

// 对该函数进行防抖处理
    // 当函数被调用时候 不会立刻执行 而是在规定时间之后执行
    // 如果在规定时间内它再次被调用 则当前被调用的时间开始 再向后延迟
      
      hclick () {  
      if (this.timer) {    // 先判断有无定时器正在执行  有则清楚
        clearTimeout(this.timer)
      }
      this.timer = setTimeout(async () => { // 定时器里面执行要操作的事件
        事件处理、请求接口操作
      }, 5000)
    },

三、节流

在输入框下面出现历史提示或者搜索建议时,建议使用节流操作
节流处理 降低频率 如果这个函数距离上一次被调用的时间之间间隔不到规定时间 则本次不执行代码

  • 节流是节约用水:把一直连续放水的水龙头关小,直到让水是一点一点向下滴(函数还是可以被调用多次,只不过是频率变慢了)
    hclick () {
      if (!this.timer) {  // 判断 如果没有定时器 则执行
        this.timer = setTimeout(async () => {
          this.timer = null    // 当进入定时器后 先将定时间清空
          事件处理、请求接口操作
        }, 300)
      }
    },
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值