Open suukii opened 4 years ago
节流的核心思想是:如果在定时器的时间范围内再次触发事件,就什么都不做,只有等当前定时器结束后,才能启动新的定时器。 代码思路:用一个 flag 来标识当前是否可以启动定时器,当我们启动一个定时器时,把 flag 设为 false,等这个定时器结束后再把 flag 设为 true。
每次事件触发时都删除原来的定时器,然后启动一个新的定时器。
在防抖的情况下,如果事件触发得太频繁,会导致一次响应也没有,但我们希望到了固定时间时必须给用户一个响应。 代码思路:记录上一个定时器结束的时间 last,当事件触发时,计算当前时间与上一个定时器结束时间的差距 now - last,如果时间差大于我们预设的固定时间,就立即执行一次函数。
now - last
节流
节流的核心思想是:如果在定时器的时间范围内再次触发事件,就什么都不做,只有等当前定时器结束后,才能启动新的定时器。 代码思路:用一个 flag 来标识当前是否可以启动定时器,当我们启动一个定时器时,把 flag 设为 false,等这个定时器结束后再把 flag 设为 true。
防抖
每次事件触发时都删除原来的定时器,然后启动一个新的定时器。
加强版防抖
在防抖的情况下,如果事件触发得太频繁,会导致一次响应也没有,但我们希望到了固定时间时必须给用户一个响应。 代码思路:记录上一个定时器结束的时间 last,当事件触发时,计算当前时间与上一个定时器结束时间的差距
now - last
,如果时间差大于我们预设的固定时间,就立即执行一次函数。