私のページでは、一度に同時に多くのajax呼び出しを行うことがあります。アイデアは、データが利用可能になると、すべての要素が更新される(私は呼び出しをキューに入れたくない)ということです。ただし、すべてのajax呼び出しが完了するまで、Webページは要素を更新しないことがあります。更新前にすべてのAJAX呼び出しが完了するのを待つページ
例えば、更新中の画像が4つあります。各画像には、そのデータが利用可能になるとソースを更新する独自のAjaxコールバックがあります。コードは次のようなものになります。
for (var i = 0; i < numPictures; i++){
Dajaxice.Images.load_picture(callback_function, {'pictureId': i});
}
をcallback_functionでは、その準備ができたら、そのUI要素に画像を置く:
imgSnippet = '<img src="' + data.img_source + '"/>'
$("#" + data.container_id).html(imgSnippet);
(データはこの関数は、サーバから受信したオブジェクトである)
私はAJAXの機能のためにdajax(djangoのためのプラグイン)を使用しています。サーバー側では、mod_wsgi経由でdjango 1.3を実行しているApache(2.2)があります。
実行すると、一部のajax呼び出しが以前に終了しても(私のサーバー上に表示されます)、最後の呼び出しが戻ってくるまで要素は更新されません。
提案がありますか?
おかげで、
これはhttp://stackoverflow.com/questions/7504264/ajax-simultaneous-loading-of-multiple-imagesの複製で、人々があなたの質問に答えたようです。そうじゃないの? – dyoo
ajax呼び出しは同期していますか?その場合、javascriptコントロールをシステムに戻すまで、画面の更新を取得しないことがあります。 – jfriend00
@dyoo:いいところですが、実際にはそうではありません。私はこれがマルチスレッドのApacheサーバで起こっているのを見ています – Goro