【问题标题】:JQuery trigger event performance on document文档上的 JQuery 触发事件性能
【发布时间】:2016-02-11 17:25:05
【问题描述】:

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

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

我的伪代码:

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

我的事件在 DOM 中没有合适的位置,但我总是可以添加一个虚拟元素来触发/监听它是否更好,但我宁愿不这样做。你怎么看?

【问题讨论】:

    标签: javascript jquery performance events


    【解决方案1】:

    trigger() 向上传播 DOM。它还与匹配对象的所有元素交互,这可能导致冲突/意外行为。这些都不是固有的*性能影响——而且由于您使用的是自定义事件,因此与对象匹配的其他元素不应该有问题。当 trigger() 与真实事件(例如 trigger('click') )一起使用时,这确实是一个问题。 如果您担心其中任何一个(冒泡 DOM 或其他匹配元素),您可以使用triggerHandler()

    This post 更详细地介绍了 trigger() 和 triggerHandler() 之间的区别

    【讨论】:

    • 给他的事件命名空间怎么样? -> $(..).trigger("ns.click")
    猜你喜欢
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多