防抖和节流严格算起来应该属于性能优化的知识,但实际上遇到的频率相当高,处理不当或者放任不管就容易引起浏览器卡死。
防抖:短时间内多次请求,只执行之后一次。通过延时器来延迟程序的执行,并且在延时器内部清除上一次生成的延时器。
应用场景:input输入框
节流:规定时间内,只触发一次。比如我们设定500ms,在这个时间内,无论点击按钮多少次,它都只会触发一次。
应用场景:浏览器滚动,点击过快。可以是抢购时候,由于有无数人 快速点击按钮,如果每次点击都发送请求,就会给服务器造成巨大的压力,但是我们进行节流后,就会大大减少请求的次数。
目的:减少对服务器的请求压力。
节流和防抖大致相同,不同点在于:
- 防抖是“随机应变”,以密集的事件触发处的末尾为下一次事件触发的计时开始处
- 节流是“铁打不动”,始终以第一次事件触发为起始点,忽略
time
时间内的所有事件,第一次事件发生time
事件之后触发第二次事件