0

不久前我发现了一个库,它是 XAML/.NET 解决方案的副本,用于处理多次触发的事件,我希望你们都可以帮助我找到它。

问题是当您捕获窗口调整大小事件时,它会在宽度或高度的每个像素变化时触发。按键事件也是如此;我只想在用户真正完成输入一段时间后触发我的自动完成搜索事件。

所以而不是:

$(window).keypress(function() { makeAjaxAutocompleteCall() });

我知道图书馆支持这样的东西:

$(window).collect("keypress", 250, function() { makeAjaxAutocompleteCall(); });

库在哪里收集按键事件,并且每 250 毫秒只触发一次。

4

1 回答 1

0

我发现了一篇非常详尽的博客文章,解释了 Debounce 和 Throttle

http://drupalmotion.com/article/debounce-and-throttle-visual-explanation

两种技术都回答了同一个问题“随着时间的推移,可以多久调用一次某个函数?” 以不同的方式:

Debounce:将其视为“将多个事件组合在一起”。想象一下你回家,进入电梯,门正在关上……突然你的邻居出现在大厅里并试图跳上电梯。要有礼貌!并为他打开门:你正在阻止电梯离开。考虑到第三个人可能会再次发生同样的情况,依此类推……可能会延迟出发几分钟。

节流阀:把它想象成一个阀门,它调节处决的流程。我们可以确定一个函数在特定时间内可以被调用的最大次数。所以在电梯的类比中......你有足够的礼貌让人们进入 10 秒,但一旦延迟过去,你必须走!

于 2013-03-11T20:40:29.423 回答