我必须创建一个jQuery Dynatree。使用我的JavaScript,我随身携带这个Dynatree的不同节点。 JavaScript执行需要一段时间。
在Firefox中,我得到了我想要的结果,即我看到我的Dynatree在增长,但在Chrome中,我必须等到JavaScript执行结束才能看到最终结果。在此之前,我只有一个空白页面。
那么您是否知道在JavaScript执行期间强制Chrome刷新显示的方法?
答案 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。