首先计时器中的开关问题
开关问题
- 开关只有两种结果 开和关 开-对应true 关-对应false
定时器的叠加问题
为什么会叠加?
连续点击的时候,会开启很多计时器,当3秒的时候,这些计时器同时向任务队列提交任务,event loop是一个不断循环的过程,找到任务就执行,没有时间间隔。
解决办法
再开启当前计时器的时候,清除前面的计时器任务。连续点击,保证最后一次点击的任务执行,前面点击开启的任务都被清除了。这种解决办法叫函数防抖。
函数节流:无论用户怎么触发,代码还是按照一定的规矩,有序的执行。
比如 我们点击按钮 每三秒发送一次请求,无论怎么点击,都是三秒执行一次。