gpt4 book ai didi

jquery - 在 jQuery 中使用 live 代替 bind 对性能有影响吗?

转载 作者:行者123 更新时间:2023-12-03 23:06:16 24 4
gpt4 key购买 nike

我发现了一些关于livebind的问题,但没有一个与性能有关。我认为标题已经很清楚了,那么在 jQuery 中使用 live 对性能有影响吗?我之所以问这个问题,是因为使用 live 时每次触发事件时都必须进行查找,我的想法是这可能会对性能产生负面影响。或者 jQuery 是否做了一些神奇的事情来加速这个过程,比如监听在 DOM 中添加某些内容时触发的某种事件?

最佳答案

一般来说,当你的页面上有很多 (...) 元素时,使用 .live()/.delegate() 具有更好的整体性能。需要有事件处理程序的站点。

将 50 个事件处理程序绑定(bind)到 50 个不同的节点比仅将一个事件处理程序绑定(bind)到这 50 个元素的公共(public)父元素(这基本上就是 .live() 所做的事情)要昂贵。

现在有人可能会说,“好吧,太棒了,但这伴随着开销事件冒泡”,这是绝对正确的。这就是引入 .delegate() 的原因。 .live() 始终将处理程序绑定(bind)到 document.body ,这显然是标记中任何子节点的父节点。然而,.delegate() 需要一个参数,您可以在其中指定“最小公分母”,这意味着您希望拥有事件处理程序的那些元素共享的最接近的父节点。这实际上将开销减少到零。

我必须承认,我(还)从未对使用“实时绑定(bind)”有意义的时间点进行过基准测试。但话又说回来,一旦您有多个元素要绑定(bind)处理程序,它就有意义了。只是只有一个函数而不是 N 个这一事实对我来说似乎很方便。

关于jquery - 在 jQuery 中使用 live 代替 bind 对性能有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782399/

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