长时间运行的jQuery方法 - 如何刷新dom?

时间:2015-02-07 23:04:58

标签: javascript jquery performance

更新

我想我必须更准确一点。

我有这个长时间运行的代码,可以为我的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并将内容打印到页面上,这样用户就不会觉得无聊,因为什么都没发生?

2 个答案:

答案 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)

这不完全是您想要的,但为什么在装载时不要在页面上放置一个微调器,然后在操作完成后就会消失?它可能是一种更干净的做事方式,而不是用户在使用时随机刷新的页面。