----函数节流 是指js代码在一定时间内只执行一次,类似于人眨眼
----函数防抖 是指频繁触发的情况下,只要有空闲时间,代码才会执行,类似于上公交车,只要有人刷卡,司机就不会开车,直到没人刷卡,司机才会开车
函数节流
多数情况下会在监听页面滚动事件时会用到,因为滚动事件是频繁触发
函数节流的要点是,有一个标志位,记录当前代码是否在执行,空闲时正常触发执行,如果正在执行,则直接return
上面的代码中,方法的作用就是监视trottle滚动事件 ,当canRun=true时,说明当前正在空闲,可以正常执行,当进入if语句时,canRun的状态发生变化,此时正在执行,其他方法无法执行,
再用setTimeout方法来设置时间间隔,执行完毕后才允许其他方法进入
函数防抖
函数防抖的应用,大多数是在注册时手机验证,当用户输入完之后,前端才会进行验证,不正确弹出提示语
函数防抖要点:需要setTimeout来帮助实现,延迟需要执行的代码
如果代码多次触发,则把上次未执行的clearTimeout清除掉,重新开始
如果计时完毕,没有其他方法进入,则执行代码