jQuery选择器性能差异

jQuery选择器性能差异,jquery,performance,performance-testing,Jquery,Performance,Performance Testing,这两个选择器之间有什么区别?我可以使用第二个来优化我的脚本吗 $('#'+idTest); jQuery(document.getElementById(idTest)); 根据我在上的测试,第二个要快三倍(与第二个相比,第二个要快三倍)。第二个对我来说要快两倍(jsperf也是,带有删除功能) 两种方法都可以使用,但第一种更具可读性。 如果需要这种优化,甚至不应该使用jQuery;) 这条线 $('#'+idTest); 内部使用document.getElementById获取元

这两个选择器之间有什么区别?我可以使用第二个来优化我的脚本吗

$('#'+idTest);  
jQuery(document.getElementById(idTest));  

根据我在上的测试,第二个要快三倍(与第二个相比,第二个要快三倍)。

第二个对我来说要快两倍(jsperf也是,带有删除功能)

两种方法都可以使用,但第一种更具可读性。 如果需要这种优化,甚至不应该使用jQuery;)

这条线

$('#'+idTest);
内部使用document.getElementById获取元素


但是jQuery必须根据其规则解析字符串选择器
“#”+idTest
。这就是开销的来源。

是的,它更快,但是。。。你会需要这种优化吗?计算您编写这样的代码的次数,然后计算脚本的长度。如果您没有一个包含数百万个标记的页面……在大多数情况下,您仍然可以缓存元素我之所以在
$('#'+idTest)
上使用
document.getElementById(idTest)
的唯一原因是在我编写不一定需要jQuery操作的脚本时。jQuery已经在内部进行了这种优化,它只是隐藏在一些if语句、regexp测试和函数后面,这使得它比本机版本花费的时间更长。