Jquery的代码问题

时间:2010-10-31 05:51:07

标签: javascript jquery

哪种代码最快?

for(i=0; i<100; i++) {
    jQuery("#myDiv").append("<span>" + i + "</span>");
}
//

var i, markup = "";
for (i=0; i<100; i++) {
    markup += "<span>" + i + "</span>";
}
//

jQuery("#myDiv").append(markup);

//
var i, markup = "";
for (i=0; i<100; i++) {
    markup += "<span>" + i + "</span>";
}

//
jQuery("#myDiv").append("<div>" + markup + "</div>");

//

4 个答案:

答案 0 :(得分:4)

test

非常容易
  1. 第三个是最快的,因为jQuery将有一个包装元素,只需要将它附加到父元素就可以了。它比其他两个快3-5倍

  2. 第一个将是第二个因为jQuery直接追加每个元素而没有处理大字符串的开销。

  3. 第二个将是最慢的,因为在创建巨型字符串之后它将没有根元素,因此{1}}将逐个添加到了父母。

  4. 注意:最后两个的实际顺序可能因浏览器而异。它们有些相同。

答案 1 :(得分:2)

我猜这个:

jQuery("#myDiv").append(markup);

我猜这个几乎没有区别:

jQuery("#myDiv").append("<div>" + markup + "</div>");

原因,我认为第一种情况是最慢的,是你创建jQuery对象100次而不是一次。

当然,最好分析或测试性能问题。查看John Resig的Deep Profiling jQuery apps帖子。

答案 2 :(得分:0)

这很难说,但这里有一个更好的,在更大的字符串上效果更好:

var markup = [];
for(int i=0;i<100;i++){
   markup.push('<span>' + i + '</span>');
}
jQuery('#myDiv').append(markup);

答案 3 :(得分:0)

查看此链接以改进您的jquery

http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx

特别提示6和7

所以从列表中得到的更好:

//
var i, markup = "";
for (i=0; i<100; i++) {
    markup += "<span>" + i + "</span>";
}

//
jQuery("#myDiv").append("<div>" + markup + "</div>");