zit*_*tix 4 javascript jquery jquery-plugins debouncing
我想推迟在事件上执行一些代码.使用标准setTimeout功能和插件去抖(链接到去抖动)之间究竟有什么区别?
这是一个例子 setTimeout:
var timeout;
$(window).on("scroll", function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
doSomethingFunction();
}, 500);
});
Run Code Online (Sandbox Code Playgroud)
这是debounce的一个例子:
$(window).on("scroll",
$.debounce(500, doSomethingFunction)
);
Run Code Online (Sandbox Code Playgroud)
当然,对于去抖,代码更短但是还有其他好处吗? 哪一个会更快?
debouncesetTimeout内部使用,因此差异与setTimeout被触发的次数有关.
debounce限制它发射的次数setTimeout.如果在短时间内发送多个请求,则只会有一个请求通过.
var timeout_id = setTimeout(
debounce_mode ? clear
: exec, debounce_mode === undefined ? delay - elapsed
: delay
);
Run Code Online (Sandbox Code Playgroud)
您可以查看源代码以获取更多信息.
该插件将通过设置超时ID来处理超时.
| 归档时间: |
|
| 查看次数: |
4935 次 |
| 最近记录: |