【发布时间】:2013-04-26 09:08:13
【问题描述】:
谁能解释一下为什么常规的 Append into a loop 比 AppendTo 效果更好?
//Using Regular Append
var ul = $("<ul></ul>");
$("#myDiv").empty().append(ul)
$.each(movies, function (count, item) {
var id = 'li_' + count;
ul.append('<li id=' + id + '>' + item + '</li>');
$('#' + id).click(function () { });
});
//Using AppendTo
var div = $("#myDiv").empty(),
ul = $("<ul></ul>").appendTo(div);
$.each(movies, function (count, item) {
$('<li>' + item + '</li>').click(function () { }).appendTo(ul);
});
【问题讨论】:
-
添加了一些更快的选项:jsperf.com/sdp-jquery-append/4
-
只是一个旁注:当您使用
append时,您正在附加一个字符串。当您使用appendTo时,您正在附加一个 jQuery 对象。append仍然稍微快一些,但是在将append与 jQuery 对象 (jsperf.com/sdp-jquery-append/6) 一起使用时,性能差异要小得多。我猜想在使用appendTo时会产生一些额外的开销,因为您首先创建对象,然后调用该对象的方法,而不是选择缓存的对象并附加到它。
标签: javascript jquery append appendto