Ahm*_*gdy 43 javascript jquery jquery-selectors
表现明智document.getElementById('elementId')还是什么更好$('#elementId')?我怎样才能自己计算速度?
jef*_*eon 80
如果你担心性能,本机getElementById要快得多,但是jQuery可以让你非常方便地访问很多东西.所以,你可能想要使用类似的东西:
$( document.getElementById("some_id") ).jQueryCall();
Run Code Online (Sandbox Code Playgroud)
这将为您提供更好的性能,同时允许您使用jQuery.
Mar*_*ius 30
getElementById更快,因为它使用本机代码.jQuery选择器也将使用getElementById,但它首先需要对文本进行大量测试和比较.
我只是偶然发现了这个帖子,同时想知道同样的问题...所以决定敲一个快速的测试脚本......运行它,亲自尝试,吹响我的想法!
var now = Date.now();
var diff = 0;
console.log(now);
for(var i=0; i < 1000000; i++)
{
if($(document.getElementById("test")).css('opacity') == '0.2')
$(document.getElementById("test")).css('opacity', '1');
else
$(document.getElementById("test")).css('opacity', '0.2');
}
diff = Date.now() - now;
console.log('With $(document.getElementById("test")).somejQueryCall(): ' + diff + ' milliseconds');
////////////////////////////////////////////////////////////////////////
var now2 = Date.now();
var diff2 = 0;
console.log(now2);
for(i=0; i < 1000000; i++)
{
if($("#test").css('opacity') == '0.2')
$("#test").css('opacity', '1');
else
$("#test").css('opacity', '0.2');
}
diff2 = Date.now() - now2;
console.log('With $("#test").somejQueryCall(): ' + diff2 + ' milliseconds');
////////////////////////////////////////////////////////////////////////
var now3 = Date.now();
var diff3 = 0;
var elem = $("#test");
console.log(now3);
for(i=0; i < 1000000; i++)
{
if(elem.css('opacity') == '0.2')
$(elem).css('opacity', '1');
else
$(elem).css('opacity', '0.2');
}
diff3 = Date.now() - now3;
console.log('With $(elem).somejQueryCall(): ' + diff3 + ' milliseconds');
Run Code Online (Sandbox Code Playgroud)
运行此脚本后,我得到以下结果:
运行1
使用$(document.getElementById("test")).somejQueryCall():552毫秒
用$("#test").somejQueryCall():881毫秒
用$(elem).somejQueryCall():1317毫秒
跑2
用$(document.getElementById("test")).somejQueryCall():520毫秒
用$("#test").somejQueryCall():855毫秒
用$(elem).somejQueryCall():1289毫秒
跑3
用$(document.getElementById("test")).somejQueryCall():565毫秒
使用$("#test").somejQueryCall():936毫秒
用$(elem).somejQueryCall():1445毫秒
我无法相信差异!只是分享这个!
和平!
| 归档时间: |
|
| 查看次数: |
20507 次 |
| 最近记录: |