更新
我想我必须更准确一点。
我有这个长时间运行的代码,可以为我的DIV添加内容。 这是代码的一个例子:
m = jQuery('#test').clone();
//do some work
jQuery('#test2').append(m);
问题是这可能需要一段时间,因为有时我会添加100个项目。并且只有在添加了所有100个项目后,内容才会显示在页面上。所以用户必须等待30秒左右。
我想在添加10个元素之后更新#test2 - DIV然后继续添加元素
有没有办法刷新DOM或(更好)刷新test2-DIV然后继续添加元素?
OLD说明
我有一个长期运行的jQuery方法,它克隆DIV并将它们附加到页面。 它看起来像这样:
m = jQuery('#test').clone();
//do some work
jQuery('#test2').append(m);
此代码被多次调用(有时最多100次),内容显示在页面中需要很长时间。
有没有办法刷新dom并将内容打印到页面上,这样用户就不会觉得无聊,因为什么都没发生?
答案 0 :(得分:2)
您可以使用setTimeout执行所需操作。这就像我们用来制作动画的逻辑一样。
// Code goes here
function load(index) {
var m = jQuery('#test').clone();
m.html("Element" + index)
jQuery('#test2').append(m);
if(index < 100) {
setTimeout(function() {
load(index + 1);
},100);
}
}
$(document).ready(function(){
load(0);
});
这是一个plunker
答案 1 :(得分:-1)
这不完全是您想要的,但为什么在装载时不要在页面上放置一个微调器,然后在操作完成后就会消失?它可能是一种更干净的做事方式,而不是用户在使用时随机刷新的页面。