jQuery bind()unbind()和on()和off()

mr_*_*app 5 javascript performance jquery events bind

我正在为一个小网站管理工作.

取消绑定事件以提高性能(客户端)是否有意义?或者,取消绑定事件并在30秒之后再绑定它会花费更多性能吗?

我的问题:bind() - unbind()或on().off()背后的想法只是增加基于客户端的性能还是我应该将它用于其他场景?这个问题的出现是因为我的javascript代码正在增长并且增长(大约30%),因为解除绑定事件.而且我认为,有些事情可能不起作用,当用户不进行交互时,我想...

.

编辑:大多数时间im绑定/解除绑定按键事件,因为我需要diff的箭头键.场景.

Str*_*lle 5

出于性能原因而仅仅为了再次绑定而绑定可能容易出错,并且在大多数情况下会使事情变得过于复杂.

您可以采用更"鸟眼"的方法,在DOM树顶部附近只绑定几个侦听器,然后在触发事件时检查实际点击的内容,而不是在许多特定DOM元素上绑定事件侦听器.

这样你就不会在绑定/解除绑定大量事件监听器上花费CPU,而是在处理事件时占用小的CPU(通常不会引人注意).

这里将详细介绍:向页面添加复杂元素时的事件委派与直接绑定


小智 4

如果您尝试绑定和取消绑定,则会为垃圾收集器实际进入并清理代码创建竞争条件。最好绑定一次,不必再次绑定。如果您的客户端预计会运行很长一段时间(几周、几个月),那么您应该考虑内存管理和内存泄漏,因为这更多地是对性能的关注。

绑定-解除绑定(如果未正确完成)可能会产生难以发现的内存泄漏。如果您使用的是 webkit,请通过取消绑定与绑定一次来获取性能的堆快照,然后您可以做出最佳决定。

这是一个链接:

http://addyosmani.com/blog/taming-the-unicorn-easing-javascript-memory-profiling-in-devtools/