去抖:为什么先等动作停下来再处理?

去抖:为什么先等动作停下来再处理?

去抖,是把一连串紧密发生的输入暂时视为同一次尚未结束的变化,等到规定时间内不再出现新输入,才执行一次处理。它最初常用于机械开关:触点按下时可能在极短时间内反复接通、断开,电路需要判断哪一次才代表稳定状态。

在软件里,搜索框是更直观的例子。用户连续输入“Canberra”,若每敲一个字母都立即查询,前面的结果很快失效,还浪费网络与计算资源。设置三百毫秒去抖后,每次新按键都会重新计时,只有输入短暂停住才发送请求。

去抖的中心不是“慢一点”,而是判断一段变化何时可以当作完成。它用延迟换取稳定,因此不适合必须即时响应的动作。去抖也不同于节流:节流在连续输入期间仍按固定频率执行,去抖则可能一直等待到输入安静。现实中的“等事情定下来再处理”只有在等待边界明确时才是去抖;没有期限地拖延,不是同一个概念。


了解 Geoffrey Chen 的更多信息

订阅后即可通过电子邮件收到最新文章。