jQuery()比getElementById慢

Eli*_*jah 0 performance jquery

我正在运行一些性能测试,看看我是否可以直接使用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
}
Run Code Online (Sandbox Code Playgroud)

知道为什么未注释的行速度会慢得多吗?以及如何重写它?

med*_*iev 5

getElementById是一种本地方法.jQuery不是.jQuery做了一些事情来弥补浏览器的不一致性.它是getElementById在进行正则表达式匹配之后做的.

当然,jQuery更慢,因为它是一个环绕.

与其他框架相比,jQuery会被认为是快速的,因为它是一个框架.您无法将浏览器本机函数与抽象本机方法的框架进行比较,本机方法将始终更快.