jQuery选择器性能 - 一个声明与两个声明

时间:2010-02-06 13:01:36

标签: jquery

使用两个单独的调用来隐藏两个元素之间是否有任何性能差异,或者仅使用一个语句会更高/更低效吗?有什么实际区别吗?

$('#container1').hide();
$('#container2').hide();

VS

$('#container1, #container2').hide();

另外,您认为哪个更具可读性?

4 个答案:

答案 0 :(得分:5)

在两个元素上调用相同的委托有一个小的性能差异,但这是一个非常非常次要的内存分配。任何额外的代码行也意味着javascript解释器的更多工作和浏览器的工作...这比任何东西都更有差异,但仍然是一个无限小的差异。

简短的回答:第二个是稍微更快/使用更少的内存,它是如此疯狂无足轻重你可能无法测量没有循环数万次。

答案 1 :(得分:1)

在这种特定情况下,它不会产生实际差异。你仍然在寻找DOM中的两个特定id。

就可读性而言,我会将它们保留在一个声明中,只要它们在逻辑上分组即可。

但是,如果你的下一行是在container2上单独运行的东西,那么将2分开。不需要进行额外的遍历。例如:

//2 dom traversals
$('#container1').hide();
$('#container2').hide().html(some_html);

//3 dom traversals
$('#container1, #container2').hide();
$('#container2').html(some_html);

答案 2 :(得分:0)

从效率的角度来看无关紧要。我认为第二个选项更易于提高可读性,如果您不需要将单独的事件附加到其中一个元素:$('#containter1').hide().html('foo'); ...而不是其他元素。

答案 3 :(得分:0)

两者都差不多,第二个是短的几个字符,如果这是一个对你很重要的考虑因素。