去抖动
在编程领域,防抖是指将特定时间间隔内所有请求的操作合并成一次调用。
防抖与节流非常相似。关键区别在于,节流限制连续操作,而防抖则等待调用停止一段时间,将多个噪声调用合并成一次调用。
防抖的一个典型用例是在响应用户输入时。当用户输入时,不应该采取任何其他操作,以避免 UI 变得迟滞。当用户暂停输入时,我们可以开始处理输入,例如过滤结果、提供建议等。如果函数 search
被防抖了 10 毫秒,这意味着
- 第一次调用
search
被称为前沿。 - 对于每次后续调用
search
,如果它在距离上次调用 10 毫秒内发生,则它与上次调用属于同一个“批次”。 - 从上次调用
search
开始经过 10 毫秒后,如果没有其他调用发生,则我们已到达后沿。
通常,search
只在后沿执行一次,尽管有时它可能在前沿执行,或者甚至在前后沿都执行,这取决于具体的用例。如果在前后沿都执行,则防抖实现通常也会确保下一次前沿调用至少在上次后沿调用 10 毫秒后才触发。
另请参阅
- 术语表
- 防抖和节流通过示例解释 在 CSS-Tricks 上(2016 年 4 月 6 日)