JavaScript:停止事件传播是否有任何性能优势?

问题描述 投票:0回答:2

停止 JavaScript 事件传播是否被认为是“良好实践”——它是否对性能有任何好处?

我想知道停止传播是否有布局目的外部的好处,这样就不会意外触发多个事件。

javascript event-propagation
2个回答
6
投票

这完全取决于 DOM 复杂性 以及触发的每个事件中采取的操作。

您会停止传播事件,主要不是因为复杂性,而是因为不发生不需要的操作。

例如:考虑这样一种情况,您有一个显示隐藏

div
,当您单击
div
时,它应该打开,如果您单击文档中的其他任何位置,它应该关闭。

因此,您可以将

onclick
事件处理程序连接到文档以及
div
。因此,当单击
div
时,您必须停止传播事件,以便不会调用文档单击处理程序。在这种情况下,您可以使用停止事件传播。


3
投票

仅当程序逻辑有必要时,例如防止表单提交或触发另一个 DOM 元素的操作。除非你有一个非常复杂的 DOM 树,否则不会有任何严重的性能影响。

© www.soinside.com 2019 - 2024. All rights reserved.