任何人都可以给我一个简单的解释,说明出于速率限制目的而对函数进行节流和去抖动之间的区别吗?
对我来说,两者似乎都做同样的事情。我查了这两个博客来找出答案,但我仍然无法理解。
http://remysharp.com/2010/07/21/throttle-function-calls http://remysharp.com/2010/07/21/throttling-function-calls
http://benalman.com/projects/jquery-throttle-debounce-plugin/ http://benalman.com/projects/jquery-throttle-debounce-plugin/
简单来说:
-
节流将延迟执行函数。它将减少多次触发的事件的通知。
-
去抖将对一个函数的一系列顺序调用集中到对该函数的单个调用中。它确保对多次触发的事件发出一个通知。
你可以直观地看到差异在这个演示中 https://web.archive.org/web/20220117092326/http://demo.nimius.net/debounce_throttle/,它显示了何时根据鼠标移动触发去抖动事件与限制事件。
如果您有一个被多次调用的函数 - 例如,当发生调整大小或鼠标移动事件时,它可能会被调用很多次。如果您不想要这种行为,您可以Throttle以便定期调用该函数。去抖意味着它在一系列事件的结束(或开始)时被调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)