每当监听input输入或者页面的onscroll,鼠标的onmouseover这些事件的频率非常高,但是如果我们在向后台发送数据时并不需要如此高的频率,毕竟浏览器的性能是有限,所有我们要加以优化
防抖:如果事件被频繁触发,防抖能保证只有最有一次触发生效!前面 N 多次的触发都会被忽略!
节流:如果事件被频繁触发,节流能够减少事件触发的频率,因此,节流是有选择性地执行一部分事件!
防抖(debounce)
是当事件被触发后,延迟 n 秒后再执行回调,如果在这 n 秒内事件又被触发,则重新计时。
好处:能够保证用户在频繁触发某些事件的时候,不会频繁的执行回调,只会被执行一次
使用场景:用户在输入框中连续输入一串字符时,可以通过防抖策略,只在输入完后,才执行查询的请求,这样可以有效减少请求次数,节约请求资源

定义个盒子

自定义防抖函数
节流( throttle )
可以减少一段时间内事件的触发频率 ,即当前函数没有执行完,不会进行后面的
使用场景:鼠标连续不断地触发某事件,懒加载时要监听计算滚动条的位置

自定义节流函数