哪种代码最快?
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>");
//
答案 0 :(得分:4)
test :
非常容易第三个是最快的,因为jQuery将有一个包装元素,只需要将它附加到父元素就可以了。它比其他两个快3-5倍。
第一个将是第二个因为jQuery直接追加每个元素而没有处理大字符串的开销。
第二个将是最慢的,因为在创建巨型字符串之后它将没有根元素,因此{1}}将逐个添加到了父母。
注意:最后两个的实际顺序可能因浏览器而异。它们有些相同。
答案 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>");