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

时间:2009-09-23 07:35:51

标签: javascript event-propagation

停止JavaScript事件传播是否被视为“良好做法” - 它是否以任何方式使性能受益?

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

2 个答案:

答案 0 :(得分:4)

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

你会停止传播事件,主要不是因为复杂性,而是因为不会发生不必要的行动。

例如:考虑一下你有一个show hide div的情况,当你点击div时它应该是opne,如果你点击文档中的任何其他地方它应该关闭。

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

答案 1 :(得分:1)

仅当需要程序逻辑时,例如阻止表单提交或其他DOM元素的操作被触发。除非你有一个非常复杂的DOM树,否则不会有任何严重的性能损失。