“setTimeout"与“debounce"插件-延迟对事件的代码执行
"setTimeout" VS "debounce" plugin - to defer code execution on events
我想延迟一些事件代码的执行。使用标准setTimeout
函数和插件debounce(链接debounce)究竟有什么区别?
这里有一个例子与 setTimeout
:
var timeout;
$(window).on("scroll", function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
doSomethingFunction();
}, 500);
});
这里有一个debounce:
的例子$(window).on("scroll",
$.debounce(500, doSomethingFunction)
);
当然,debounce代码更短,但还有其他好处吗?哪个会更快?
debounce
在内部使用setTimeout
,因此差异与setTimeout
被触发的次数有关。
debounce
限制它触发setTimeout
的次数。如果在短时间内发送多个请求,则只有一个请求会通过。
var timeout_id = setTimeout(
debounce_mode ? clear
: exec, debounce_mode === undefined ? delay - elapsed
: delay
);
您可以查看源代码以获取更多信息。
插件将通过设置超时id来处理超时。
相关文章:
- Jquery:如何处理"停止/取消”;用户停止表单提交时的事件
- "关于“;事件未使用动态内容激发
- "/"当onclick事件时从URL中删除
- jQuery"该参考文献“;加载事件后未设置
- ExtJS::如何添加特定的"specialkey事件”;表示逗号到数字字段
- Node.js服务器在没有调用“;end()"用于服务器发送的事件
- jQuery获取"事件调用“;要素
- 我怎么能"保存“;变量客户端,这样我就可以在其他java脚本事件中使用它
- "粘贴“;Angular[ngPaste]中的事件
- "这个“;当我向事件处理程序函数添加参数时会发生更改
- javascript:如何更改"这个“;事件的作用域
- 为什么"结束”;音频html5的事件触发不止一次
- Jqgrid编辑类型:"选择“;事件
- 浏览器中的观察者模式javascript:订阅事件"添加了Dom元素“;并处理这个元素
- 点击使用WebDriver的链接上的事件显示“;javascript:void(0)"状态栏上
- 编码"在Javascript onclick事件中被视为真正的双引号-为什么
- DHTMLX”;onEditCell”;事件在“”之后调用;onClick"按钮事件
- 如何获得类似id的"invokedOn”;使用Bootstrap ContextMenu通过右键单击事件显示文
- 在KineticJS中;点击“;事件和“;contentClick"事件
- "在文件对话框中取消“;事件