外部ファイルを変更して保存するサーブレットと通信しています。これには時間がかかるので、ある関数のアクションが別の関数のアクションを抱かないように、javascriptの関数呼び出しを順次実行する必要があります。順次関数呼び出し
これを行うには、busyflagがfalseに設定されているとき(つまり、他のfunctioncallが同時に処理されないとき)にのみ呼び出される別の関数を使用する 'sequential'関数を書いた。これは私のコードです:
var busy = false;
function sequential(action) {
while(busy)
setTimeout(function(){sequential(action);}, 10);
busy = true;
action();
setTimeout(function(){busy = false;}, 100);
}
function test1() {sequential(function() {alert("test1");});}
function test2() {sequential(function() {alert("test2");});}
そしてthisはjsFiddle上の例です。なんらかの理由で、このコードは2番目の呼び出しでループし続けます(functioncallが待機しなければならない場合)。
私はあなたが[Deferredの作り方](http://api.jquery.com/category/deferred-object/)が役立つかもしれないと思います... – elclanrs