我正在运行一些性能测试,看看我是否可以直接使用jQuery而不是Ext的包装器。首先,我想将jQuery(#id)与doc.getElementById进行比较,但我必须做错事,因为jQuery(#id)的速度要慢得多。
var searchDoc = searchWin.document;
var jqSearchDoc = jQuery(searchWin.document);
for (var i=0; i<500; i++){
var temp = jqSearchDoc.find('#myID'); //takes 1100ms
//var temp = jQuery(searchDoc.getElementById('myID')); //takes 3ms
}
知道为什么未注释的行会慢得多吗?以及如何重写它?
答案 0 :(得分:5)
getElementById
是一种原生方法。 jQuery不是。 jQuery做了一些事情来弥补浏览器的不一致性。在进行正则表达式匹配后,它会getElementById
。
当然,jQuery更慢,因为它是一个环绕。
与其他框架相比,jQuery会被认为是快速的,因为它是一个框架。您无法将浏览器本机函数与抽象本机方法的框架进行比较,本机方法总是更快。