jQuery性能:分组选择器与个体

时间:2013-06-23 13:59:26

标签: jquery performance dom jquery-selectors

采取以下html:

<div class='div1'/>
<div class='div2'/>
<div class='div3'/>

现在假设我想使用jQuery .hide()隐藏这些元素。性能方面,最好将3组合成一个选择器。

$('.div1, .div2, .div3').hide();

或者运行3个独立的选择器。

$('.div1').hide();
$('.div2').hide();
$('.div3').hide();

为了代码可读性,我更喜欢第二种方法,但我怀疑前一种方法更快?

此外,选择的类型是否会影响结果。例如,使用class tagname和id mix进行分组选择?

$('.myClass, a, #myId').hide();

vs单独的选择器。

$('.myClass').hide();
$('a').hide();
$('#myId').hide();

3 个答案:

答案 0 :(得分:4)

最好将3分组为单个选择器

它们之间的唯一区别是一个比其他一个更可读(你已经喜欢),你可以根据你的选择使用任何人,因为它们在{{3>没有太大的区别} -

enter image description here

选择的类型会影响结果吗?

不,这对结果没有任何影响 -

答案 1 :(得分:0)

Here's the benchmarks

看起来分组的速度稍快。

Mixed Individual: 8ms
Mixed Grouped: 6ms
Individual: 15ms
Grouped: 9ms

答案 2 :(得分:0)

这是你的答案:

http://jsperf.com/single-vs-multiple-selectors

谷歌搜索“jsperf Jquery选择器性能”会产生许多不同的测试用例,涵盖各种性能运行。

通常,Jquery选择器必须拆分为各自的组件以进行处理。因此,当它们都在一个选择器中时,这会导致成本略有增加。

除非遇到性能问题,否则不值得担心。注重可读性。