jQuery bind()取消绑定()以及on()和off()
jQuery bind() unbind() and on() and off()
我在一个小的网页管理区工作。
解除事件绑定以提高性能(客户端)有意义吗?还是取消绑定事件并在30秒后再次绑定会耗费更多性能?
我的问题:bind()-unbind()或on().of()背后的想法只是为了提高基于客户端的性能,还是应该将其用于其他场景?出现这个问题是因为我的javascript代码由于取消绑定事件而不断增长(约30%)。我认为,有些事情可能不起作用,当用户交互时,正如我所希望的。。。
编辑:大多数时候im绑定/取消绑定按键事件,因为我需要不同场景的箭头键。
由于性能原因,仅为再次绑定而取消绑定可能容易出现错误,并且在大多数情况下会使事情变得过于复杂。
您可以采取更"鸟瞰"的方法,只在DOM树顶部附近绑定几个侦听器,然后在触发事件时检查实际点击了什么,而不是在许多特定的DOM元素上绑定事件侦听器。
这样,您就不会在绑定/解除绑定大量事件侦听器上花费CPU,而是在处理事件时会受到较小的CPU冲击(这通常不明显)。
这里详细介绍了这一点:向页面添加复杂元素时的事件委派与直接绑定
如果您尝试绑定和取消绑定,则会为垃圾收集器实际进入并清理代码创造竞争条件。最好绑定一次,而不必再次绑定。如果您的客户端预计要运行很长一段时间(几周、几个月),那么您应该将内存管理和内存泄漏视为更关心性能的问题。
绑定-解除绑定(如果操作不正确)可能会导致很难找到的内存泄漏。如果您使用的是webkit,请对您使用解绑定和绑定的性能进行一次堆快照,然后您就可以做出最佳决策。
这里有一个链接:
http://addyosmani.com/blog/taming-the-unicorn-easing-javascript-memory-profiling-in-devtools/
避免担心这一点的一个解决方案是向主体注册事件,然后指定选择器参数,尤其是在处理不断变化的元素或大量元素时。
像这样:
$("body").on("click", ".my-actual-element", function(aEvent) {
// Event handler code goes here.
});
点击此处查看更多$.on().
- jquery on()和off()不起作用
- FastClick在Phonegap项目中抛出off.on('click')循环计数
- 直接在 on() 回调 Firebase 中使用 off()
- jQuery On event Off 自动解绑
- 如果不对 .off() 使用相同的 $(document) 绑定,则无法删除使用 .on() 绑定到 $(documen
- Jquery 如何将 .off() 切换到 .on()
- on() 和 off(),on() 立即触发,但我希望它像绑定或生活一样“行动”,这里有什么问题
- jQuery off on 时是用匿名函数定义的
- Jquery 网站翻译在不同链接上由 .on() .off() 事件触发
- jQuery在纯原生javascript中的“on”和“off”
- 在非dom元素上使用jquery on/off和trigger方法的陷阱是什么
- jQuery bind()取消绑定()以及on()和off()
- 如何在一个函数jQuery中使用bind、on、unbind和off
- 如何重新绑定按钮's使用.on/off单击事件
- On/Off一键定时器Javascript
- 您可以针对标记为.on()和.off()的元素子部分吗?
- 在smarty模板中使用on/off键
- AngularJS: ui开关位置(ON/OFF)识别
- On/Off:开关按钮引导程序
- 刷(ON-OFF)按钮通过复选框,html