javascript - throttle 和去抖功能

标签 javascript function throttling debouncing

我对 throttle 和去抖函数的概念有点不确定。

据我了解:

我们去抖动一个应该在特定事件发生后调用的函数。它用于拖动、按键等事件,目的是在事件被触发时不一直触发,而是在一系列事件完成时触发。通常在键入整个单词后,或者在拖动或调整大小序列结束后。

我们限制一个应该在一系列事件发生时触发的函数,但是当我们想要控制它被调用的次数时。就像在拖动运动中一样,我们希望仅在每 x 个像素距离或仅每 100 毫秒调用该函数,而不是每次触发事件时调用该函数。因此,在一系列事件发生时会调用 throttle 函数,只是调用次数更少。

问题:

这是对这些功能及其用途的正确理解吗?还有其他区别它们的特征吗?

最佳答案

简而言之:

throttle 是为了在不断调用的过程中按一定的时间间隔调用函数。 喜欢:window.scroll。 debounce 旨在在特定时间内仅调用一次函数。不管它叫了多少次。 喜欢:提交按钮点击。 这是示例:

//http://jsfiddle.net/1dr00xbn/

你可以看出区别。

关于javascript - throttle 和去抖功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30222791/

相关文章:

javascript - 默认为动态生成的 'Select' 框选择第一个值

c - 我需要一个功能,要求用户输入密码,并且在 3 次错误尝试后,他们的程序终止

javascript - 函数未定义,不知道为什么

javascript - 有没有办法在两个数组中找到匹配的元素?

javascript - ReactJS 和 Vivus SVG 动画

javascript - 为什么名称为 "clear"的函数在 JavaScript 中不起作用

c# - 如何适当限制多线程应用程序?

php - Laravel 覆盖组中间件

javascript - Azure 翻译 API - 限制客户端请求

javascript - 如何保持饼图中切片的顺序固定? [d3]