1、防抖 (debounce)
防抖的作用是:当用户多次触发回调函数时,只触发最后一次操作的,其余的全部忽略掉。 在第一次触发事件时,不立即执行函数,而是给出一个期限值比如200ms
- 如果在200ms内没有再次触发滚动事件,那么就执行函数
- 如果在200ms内再次触发滚动事件,那么当前的及时取消,重新开始计时
效果:
如果短时间内大量触发同一事件,只会执行一次函数
应用场景:
防抖 debounce 多用于 '延迟多久后触发'
![58ODX~[_3}@FM5X0G}3MYA.png
2、节流 (throttle)
但是如果产品同学的期望处理方案是:即使用户不断拖动滚动条,也能在某个时间间隔之后给出反馈呢? 答:----->节流
节流的作用:
规定一个单位时间内,只能触发一次函数。如果这个函数单位时间内触发多次函数,只有一次生效。
- 其实很简单:
我们可以设计一种类似控制阀门一样定期开放的函数,也就是让函数执行一次后,在某个事件内短暂失效,过了这段时间后再重新激活。(类似技能冷却)
应用场景:
节流 throttle多用于 "多久触发一次"
`
</script>
`