1

私は非常にCPUを集中的に使用するJS関数を持っており、長い間応答がないためにブラウザーが強制終了します。機能を終了させたいのですが、その間ブラウザを使用できるようにしたいです。

私の解決策は、各反復後に関数にスリープに似た機能を実装することでした。

<p id="debug"/>
<script>
    function example(i) {
            //do stuff
            if(i < 100) window.setTimeout(function() {example(i+1);}, 100);
    }

    example(0);
</script>

ソリューションはうまく機能しますが、この機能を実装するためのより良い方法はありますか? - 不要な再帰を使用しない。

4

2 に答える 2

3

スレッディングに似た Web ワーカーと呼ばれるものがあります。参照: http://www.html5rocks.com/en/tutorials/workers/basics/

于 2013-02-06T12:35:41.707 に答える
0
var sleep = function(period, decision, callback){
    var interval = setInterval(function(){
        if (decision()) {
            interval = clearInterval(interval);
            callback();
        }
    }, period);
}
于 2013-07-29T21:26:02.863 に答える