gpt4 book ai didi

javascript - 将大量事件处理程序附加到 $(document) 不好吗?

转载 作者:行者123 更新时间:2023-11-29 15:29:23 26 4
gpt4 key购买 nike

我有一个非常动态的 Web 应用程序,不断创建和销毁元素。

为了保留点击和其他事件,我将所有这些事件附加到 $(document),如下例:

 $(document).on('click', '.tabs li a', function(event) {

});

就像我说的,几乎所有这些事件都附加到 $(document).. 有什么缺点吗?这些事件处理程序存储在哪里?它会使我的应用程序变慢吗?

最佳答案

否 - 这会对 jQuery 的性能产生负面影响。您不应将所有委托(delegate)的事件处理程序绑定(bind)到文档对象。这可能是您可以创建的最糟糕的性能场景。如事件表现部分所述here在 jQuery 文档中-

Attaching many delegated event handlers to the document can degrade performance. Each time the event occurs, jQuery must compare all selectors of all attached events of that type to every element in the path from the event target up to the top of the document. For best performance, attach delegated events at a document location as close as possible to the target elements.

避免对大型文档的委托(delegate)事件过度使用documentdocument.body。对于委托(delegate)事件处理,将它们绑定(bind)到最近的非动态父级会更有效。

可以在 this answer 中找到对问题的详细描述。 .

希望这对您有所帮助!

关于javascript - 将大量事件处理程序附加到 $(document) 不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36240790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com