我想知道如果我在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
,这只会给我留下一个电话。
那么是否会提升性能?
答案 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();