ループを使用してツリーを生成していると仮定します。したがって、渡された変数に基づいて、ツリーの成長の単一ステップを実行する関数を作成します。これは、ループ内のカウンターでした。エイ:
<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 を再レンダリングする必要があります。