次のJavaScriptコードでは、いくつかの値を照会するためにFastCGIモジュールに対してAJAX呼び出しを繰り返し行います。ある時点で、は、ケースの変数が0
ではなく、div1
に入る値を含み、div1
に入る値がdiv2
になると終了します。jQuery parallel AJAX呼び出しが戻り値を混ぜる
私はChromium Browser(14.0.835.202(Developer Build 103287 Linux)Ubuntu 10.10)を使用していますが、FireFoxでも発生します。 XMLHttpRequestオブジェクトだけを使ってみましたが、同じ結果が得られました。
これはどのようにして解決できますか?
function TimerEvent() {
$.ajax({
url: "/cgi-bin/wvvar.cgi",
type: "POST",
data: "cmd=get&[email protected]",
success: function(data) {
document.getElementById("div1").innerHTML = data;
}
});
$.ajax({
url: "/cgi-bin/wvvar.cgi",
type: "POST",
data: "cmd=get&[email protected]",
success: function(data) {
document.getElementById("div2").innerHTML = data;
if (data == "0")
setTimeout("TimerEvent()", 50);
}
});
}
ajaxリクエストは、必ずしも順番に完了するとは限りません。競争条件があるかもしれません。 –
私はAjaxの配列を決める以外の解決策が必要だと思います。私は一度同じ問題を抱え、Google Closure Libraryの['XhrIoPool'](https://closure-library.googlecode.com/svn/docs/class_goog_net_XhrIoPool.html)を使って解決しましたが、私はそのライブラリを使用しました。たぶん、ソースコードを見てみると助かります。 –