我有一个循环,我将一个元素追加/前置到父元素中。在循环结束之前,jQuery不会显示任何子元素。
以下面的代码为例:
var i=0;
while (i < 10000) {
$('#content').prepend($('<div>').html(++i).append($('<br>')));
}
https://jsfiddle.net/minlare/rancec7m/
有没有办法确保逐个显示单个元素?
答案 0 :(得分:2)
很简单,没有,但是它比浏览器的渲染器要多于jQuery。
另请注意,创建一个长HTML字符串并使用单个append()
调用DOM比将10,000个相对较小的字符串附加到DOM会快得多。
var i = 10000, html = '';
while (i > 0) {
html += '<div>' + i-- + '</br></div>';
}
$('#content').append(html);
如果你肯定希望每个div的效果一个接一个地出现,你可以使用一个队列,但它不会很快。