jQuery:是否有理由不总是使用 live() 来执行单击和其他功能?
我真的很喜欢在 jQuery 中使用 .live() 来执行 click() focus() Blur() 和其他交互事件。
我做了很多原型设计,所以我发现如果我想动态添加元素,它给了我很大的灵活性。出于这个原因,我发现自己一直被默认使用它的想法所吸引。这是一个好主意,还是一个糟糕的表现?
使用 .live('click',function(){})
是否会以 .click(function(){})
不会的方式减慢速度?
I really like using .live() in jQuery for click() focus() blur() and other interaction events.
I do a lot of prototyping, so I find it gives me great flexibility if I want to dynamically add elements. For that reason, I find myself drawn to the idea of using it by default all the time. Is this a good idea, or is this bad performance?
Does using .live('click',function(){})
slow things down in a way that .click(function(){})
doesn't?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您不需要事件冒泡到 DOM 顶部并且您知道事件发生的上下文,那么 delegate() 就性能而言是更好的选择。请参阅这篇 stackoverflow 帖子了解为什么delegate() 比 live() 在这方面。
If you don't need your events to bubble up to the top of the DOM and you know the context in which your event will occur then delegate() is a much better choice in terms of performance. See this stackoverflow post on why delegate() is better than live() in this regards.
我认为以下答案将适合它所产生的性能影响 jQuery .live() 是如何工作的?
I think following answer will be suitable for the performance impact it does create How does jQuery .live() work?
就性能而言,大多数情况下使用 live 效果更好。然而,live 有几个陷阱,这些陷阱在文档中进行了描述 http://api.jquery.com/live /#注意事项。
Regarding the performance, using the live is better in most cases. However live has several pitfalls, which are described in the documentation here http://api.jquery.com/live/#caveats.
我记得 .live 使用事件冒泡。
根据我的经验,我发现在大文档中使用 .live 并频繁触发鼠标悬停等事件时,性能会受到明显影响。
jQuery 文档:
因此,您可以使用它来最小化性能影响。
I remember that .live uses event bubbling.
In my experience, I've seen noticeable performance hit using .live in big document with a frequently triggered event like mouseover.
jQuery Doc:
So, you can use that to minimize the performance effect.