哪个有更好的表现?

时间:2011-04-21 09:37:16

标签: jquery performance

$("#search-by-id-wrapper, #searchforit, #findbyid, #search-block-form .container-inline").toggle();

$("#search-by-id-wrapper").toggle();
$("#searchforit").toggle();
$("#findbyid").toggle();
$("#search-block-form .container-inline").toggle();

2 个答案:

答案 0 :(得分:1)

粗略地看一下jQuery的选择器库Sizzle,无论如何它用逗号分块选择字符串......

我的直觉因此说使用第一个表单会更快,如果你缓存选定的jQuery对象,那就更好了。

var $searchThings = null;
/* ..... */
function toggleSearchThings() {
     $searchThings = $searchThings || $("#search-by-id-wrapper, #searchforit, #findbyid, #search-block-form .container-inline");
     $searchThings.toggle();
}

答案 1 :(得分:0)

即使存在轻微的性能差异,我怀疑因为字符串很可能是分裂的,并且在两种情况下都使用了多个getElementById调用(但是,后一种情况创建4而不是1个jQuery包装器对象)它是最有可能是无法忍受的。

所以你应该使用后者,因为它更具可读性。