0

jQueryDynatreeを作成する必要があります。JavaScriptを使用して、このDynatreeのさまざまなノードを構築します。JavaScriptの実行には一定の時間がかかります。

Firefoxでは、希望する結果が得られます。つまり、Dynatreeが成長しているのがわかりますが、Chromeでは、JavaScriptの実行が終了するまで待って、最終結果を確認する必要があります。その前は空白のページしかありません。

では、JavaScriptの実行中にChromeに表示を更新させる方法を知っていますか?

4

1 に答える 1

1

ループを使用してツリーを生成していると仮定します。したがって、渡された変数に基づいて、ツリーの成長の単一ステップを実行する関数を作成します。これは、ループ内のカウンターでした。エイ:

<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 を再レンダリングする必要があります。

于 2013-02-03T14:51:29.197 に答える