去抖动

在编程领域,防抖是指将特定时间间隔内所有请求的操作合并成一次调用。

防抖与节流非常相似。关键区别在于,节流限制连续操作,而防抖则等待调用停止一段时间,将多个噪声调用合并成一次调用。

防抖的一个典型用例是在响应用户输入时。当用户输入时,不应该采取任何其他操作,以避免 UI 变得迟滞。当用户暂停输入时,我们可以开始处理输入,例如过滤结果、提供建议等。如果函数 search 被防抖了 10 毫秒,这意味着

  1. 第一次调用 search 被称为前沿
  2. 对于每次后续调用 search,如果它在距离上次调用 10 毫秒内发生,则它与上次调用属于同一个“批次”。
  3. 从上次调用 search 开始经过 10 毫秒后,如果没有其他调用发生,则我们已到达后沿

通常,search 只在后沿执行一次,尽管有时它可能在前沿执行,或者甚至在前后沿都执行,这取决于具体的用例。如果在前后沿都执行,则防抖实现通常也会确保下一次前沿调用至少在上次后沿调用 10 毫秒后才触发。

另请参阅