每个id调用jQuery函数或更好地分组到一个调用

时间:2013-04-08 12:19:15

标签: jquery html performance

我想知道如果我在jQuery函数的一次调用中对一些id进行分组,或者在id之后逐行调用id,这是否会提高性能? )。

目前就是这样:

$('#culetType').combobox();
$('#girdle').combobox();
$('#polishLinesIntensity').combobox();
$('#burnmarksIntensity').combobox();
$('#scratchesIntensity').combobox();
$('#damagesIntensity').combobox();

如果我这样做,那么性能会有所改善:

$('#culetType, #girdle, #polishLinesIntensity, #burnmarksIntensity, #scratchesIntensity, #damagesIntensity').combobox();

除了阅读起来不愉快之外。

我知道我可以给所有id个人class,这只会给我留下一个电话。

那么是否会提升性能?

2 个答案:

答案 0 :(得分:1)

在较新的浏览器中,使用单个选择器会略微提升性能,因为jQuery使用内置方法来运行选择器。创建一个jQuery对象并对其中的所有元素执行操作比创建一堆jQuery对象要快一些。

在旧版浏览器中,解析包含单个id的选择器会稍微快一点,但创建多个jQuery对象的速度会稍慢,因此这些方法的执行方式大致相同。

答案 1 :(得分:1)

我知道写$()每次都会调用DOM。所以即使在你调用某些元素时也要做得更好:

el = $('#myEl');
el.firstAction();
el.secondAction();

而不是

$('#myEl').firstAction();
$('#myEl').secondAction();

因此,我认为使用$('...,...,...')拨打电话的速度会更快,但效果会很小。

但是你需要记住,在一次通话的情况下,你不能做类似的事情:

$('#culetType').combobox();
$('#girdle').combobox({property: false});
$('#polishLinesIntensity').combobox();