什么是防抖和节流?
触发------>执行
我点击按钮为触发
按钮弹出一个666,为执行
1. 防抖
触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间
理解:防抖
- 你一直触发的事件,在你不触发后的一个设定好的时间之后去执行
- 这个时间是固定的,当你在你设定的这个时间内重新去触发
- 它就重新开始计时,直到你最后一次触发度过这个时间
- 事件就会执行.
举一个有趣的防抖案例:
你不停地按控制炸弹爆炸的计时器(debounce防抖方法),这个计时器有点奇怪,它的时间从0开始跑,跑5秒,炸弹就会炸,(防抖触发的时间为5秒),计时器有一个清空时间的按钮,当你按按钮时间就清零,计时开始,你只要在5秒内按按钮,炸弹就不会爆炸(事件就不会触发),当你没按按钮,计时器达到五秒,炸弹就BONG!!!
2. 节流
高频事件触发,但在n秒内只会执行一次,所以节流会稀释函数的执行频率
理解:节流
你一直触发的事件,不会一直执行,当到达你设定的那个时间后,触发一次,有间隔的触发一次,有点类似定时器setInteval()方法的模型.
应用场景
一些一直被触发的事件,such as(例如:)
滚动事件,
搜索框列表检索
等等等等
好啦,以上就是防抖和节流的概念和理解啦
如果,还有不懂的,欢迎来评论区留