JQuery触发文档上的事件性能

时间:2016-02-11 17:25:05

标签: javascript jquery performance events

我正在jQuery中构建一个发布/订阅框架,我想知道在文档根目录上触发和侦听事件是否存在性能损失?

我能找到的所有文章都描述了您在文档级别上听取事件时明显受到的惩罚,但是从更具体的元素触发它们 - 例如,听取“点击”。

我的伪代码:

$(document).on("myCustomEvent", function() {
    alert("Event triggered");
});
$(document).trigger("myCustomEvent");

我的事件在DOM中没有适合的家,但我总是可以添加一个虚拟元素来触发/听取它是否更好,但不愿意。你觉得怎么样?

1 个答案:

答案 0 :(得分:0)

trigger()传播DOM。它还与匹配对象的所有元素交互,这可能导致冲突/意外行为。这些都不是固有的*性能命中 - 并且由于您使用自定义事件,因此您不应该遇到与该对象匹配的其他元素的问题。当trigger()与真实事件一起使用时,这真的只是一个问题,比如触发器('点击')。 如果您关注其中任何一个(冒泡DOM或其​​他匹配元素),您可以使用triggerHandler()

This post详细介绍了trigger()和triggerHandler()

之间的区别