event.addEventListener的event.target

时间:2013-09-02 05:14:05

标签: javascript performance addeventlistener event-listener

在我目前正在研究的解决方案中,我最初将事件监听器绑定到同一容器中的许多目标。我想看看你们中是否有人在使用单个事件监听器和利用事件的目标时获得了显着的性能提升,以节省大量事件监听器的开销。

简而言之,在限制事件侦听器的数量时,JavaScript是否会有显着的性能提升。

1 个答案:

答案 0 :(得分:0)

在每个对象上使用事件传播与单个事件处理程序和单个事件处理程序之间存在权衡。哪种权衡最适合您,完全取决于您的个人情况。没有一个答案最适合所有情况。

在运行时,附加到每个对象的单个事件处理程序将以最快的速度运行。由于它直接附加到感兴趣的对象,因此系统基本上没有工作要知道应该触发事件处理程序。

在安装/设置时,附加到父级的单个事件处理程序初始化比在每个单个对象上初始化事件处理程序更快。

因此,在事件发生时,您需要在更快的设置时间与更快的执行之间进行小的权衡。

最后,除非你有数千个对象,否则时间执行差异可能很小,甚至没有意义。我建议选择制作最干净,最简单代码的选项。