防抖和节流的作用都是: 防止频繁触发一个方法。但是略有不同。
防抖: 某一段时间内,只执行一次。比如监听鼠标移动,鼠标一直动一直动,执行函数,只会在鼠标停止动之后,执行一次。
节流: 每间隔一段时间,执行一次。比如监听鼠标移动,鼠标一直动一直动,执行函数,会在设置的时间周期内执行一次。
应用场景:
防抖可以应用在输入框搜索,控制调用接口的频率。也可以用来监听窗口的变化。
节流可以应用在监听滚动条的位置,或者频繁点击按钮的优化。
下面是监听滚动条变化的方法:
一: 防抖(监听滚动条使用这种方法,有一个缺陷,就是用户一直滚动不撒手,则不会执行方法)
二: 节流的方案:上面的方法说了有个缺点,节流可以根据设置的时间,周期内间隔执行