节流和防抖
防抖
- 防抖的中心思想在于:我会等你到底。在某段时间内,不管你触发了多少次回调,我都只认最后一次。
使用场景
- search搜索联想,用户在不断输入值时,使用防抖减少请求次数。
节流
throttle 的中心思想在于:在某段时间内,不管你触发了多少次回调,我都只认第一次,并在计时结束时给予响应。
每当用户触发了一次scroll事件,我们就为这个触发操作开启计时器。一段时间内,后续所有的scroll事件都会被当作“一辆车的乘客”——它们无法触发新的scroll回调。直到“一段时间”到了,第一次触发的scroll事件对应的回调才会执行,而“一段时间内”触发的后续的scroll回调都会被节流阀无视掉。
使用场景
鼠标点击事件,mousedown(单位时间内只触发一次)
监听滚动事件,比如是否滑到底部自动加载更多,用throttle来判断