我有一个关于实时方法的问题

时间:2011-07-06 02:08:21

标签: javascript jquery

$('.classname').live('click',function() { some code; });

如果这个类有大约100-200或300个元素会有一些性能问题吗?

2 个答案:

答案 0 :(得分:1)

这在很大程度上取决于{ some code }的内容。唯一的方法是设置和测试。如果性能足够,你没有问题。如果性能很差,那么您可以在Firebug和/或Chrome / Safari开发人员工具中对其进行分析,并尝试进一步优化绑定功能。

答案 1 :(得分:1)

livedelegate实际上应该提高大量元素的效果。这当然与bind相比。如果live速度很慢,您几乎可以保证bind会更糟。

原因是delegate来电*会将该功能存储在单个元素上,而bind来电则会在上存储该功能的副本每个元素。

当您使用委托时,它会将侦听器存储在将捕获事件的父元素上,并在子元素的上下文中调用回调。

不要过早优化。如果您已经遇到问题,请尝试将代码分离为可重复使用的块,并查看可以减少的数量。如果你没有问题,那么问题是什么?

* live基本上是$(document).delegate(selector,...)