多选择器与单选择器性能

时间:2013-07-19 18:16:12

标签: jquery performance

我已经尝试找到答案了,我找到了相关问题,虽然他们确认了我的调查结果(that one multiple selector call is slower than multiple single selector calls),但没有人告诉我原因。

基本上,当你运行这段代码时:

$("#one, #two").hide();
$("#one, #two").show();

反对这段代码:

$("#one").hide();
$("#two").hide();
$("#one").show();
$("#two").show();

然后后者将加快约50%。

但是,一旦我们添加第三个选择器,性能差异就会快39%。

第四选择器差异:快26%。

第五:快30%。

第六:快31%。

十:快31%。

(注意这些值似乎在约5%的范围内)

所以我们得到的东西看起来像这样:

enter image description here

表现似乎在6个选择器附近达到稳定水平。它似乎永远不会比通过一次通话完成每一次的速度快31%。 那是为什么?

就个人而言,我喜欢每次通话使用多个选择器,但它似乎有(相对)大的性能影响。什么时候(不)适合使用?

1 个答案:

答案 0 :(得分:6)

在这两种情况下,您都会对ID进行操作,因此可以将其转换为本机getElementById来电。

然而,在第一种情况下,必须做2件事

  1. 必须处理昏迷,因此需要进行额外的解析
  2. 必须合并2个结果,操作jQuery asserts that they are returned in the same order as in DOM
  3. 我猜第二次操作占用的时间最多。

相关问题