# 防抖节流

何谓节流和防抖?

节流
节流的意思是,规定时间内,只触发一次。比如我们设定500ms,在这个时间内,无论点击按钮多少次,它都只会触发一次。具体场景可以是抢购时候,由于有无数人 快速点击按钮,如果每次点击都发送请求,就会给服务器造成巨大的压力,但是我们进行节流后,就会大大减少请求的次数。

防抖
防抖的意思是,在连续的操作中,无论进行了多长时间,只有某一次的操作后在指定的时间内没有再操作,这一次才被判定有效。具体场景可以搜索框输入关键字过程中实时 请求服务器匹配搜索结果,如果不进行处理,那么就是输入框内容一直变化,导致一直发送请求。如果进行防抖处理,结果就是当我们输入内容完成后,一定时间(比如500ms)没有再 输入内容,这时再触发请求。

# 防抖

debounce(func, wait = 500, options = {})
func: 触发回调执行的函数
wait: 时间间隔, 单位毫秒, 默认为500毫秒
options: 配置选项, 配置如下:

  1. leading,函数在每个等待时延的开始被调用,默认值为false
  2. trailing,函数在每个等待时延的结束被调用,默认值是true
  3. maxwait,最大的等待时间,因为如果debounce的函数调用时间不满足条件,可能永远都无法触发,因此增加了这个配置,保证大于一段时间后一定能执行一次函数

基础用法

this.$cc.debounce(() => console.log('debounce))

# 节流

throttle(func, wait = 500, options = {}) func: 触发回调执行的函数
wait: 时间间隔, 单位毫秒, 默认为500毫秒 options: 配置选项, 配置如下:

  1. leading,函数在每个等待时延的开始被调用,默认值为false
  2. trailing,函数在每个等待时延的结束被调用,默认值是true
  3. maxwait,最大的等待时间,因为如果debounce的函数调用时间不满足条件,可能永远都无法触发,因此增加了这个配置,保证大于一段时间后一定能执行一次函数

基础用法

this.$cc.throttle(() => console.log('debounce))
Last Updated: 8/16/2021, 2:18:04 PM