强制Chrome在javascript执行期间刷新显示

时间:2013-02-03 13:59:14

标签: javascript google-chrome jquery-dynatree

我必须创建一个jQuery Dynatree。使用我的JavaScript,我随身携带这个Dynatree的不同节点。 JavaScript执行需要一段时间。

在Firefox中,我得到了我想要的结果,即我看到我的Dynatree在增长,但在Chrome中,我必须等到JavaScript执行结束才能看到最终结果。在此之前,我只有一个空白页面。

那么您是否知道在JavaScript执行期间强制Chrome刷新显示的方法?

1 个答案:

答案 0 :(得分:1)

我假设您正在使用循环来生成树,因此创建一个函数,该函数根据传递的变量运行树生长的单个步骤,该变量将是循环中的计数器。 EI:

<script>

//  what you probably have now
//  for(var i=0;i<100;i++){
//      dosomething
//  };


function step(i){
    dosomething
    if(i<100){
        window.requestAnimationFrame(function(){step(i+1)});
    };
};
step(0);

</script>

您必须像requestAnimationFrame那样跨浏览器。

window.requestAnimationFrame=(function(){
    return window.requestAnimationFrame     ||
        window.webkitRequestAnimationFrame  ||
        window.mozRequestAnimationFrame     ||
        window.oRequestAnimationFrame       ||
        window.msRequestAnimationFrame      ||
    function(callback){
        window.setTimeout(callback,1000/45);
    };
})();

但是每次运行程序后,这应该可以工作并重新渲染DOM。