jQueryでHTTP通信でjsonファイルを取得する場合、
ファイルが一つだけなら
$.ajax({
url: path,
type: "GET",
dataType: "json",
success: function(json, status, xhr) {
},
error: function(xhr, status, errorThrown) {
},
complete: function(xhr, status) {
}
});
のようにsuccessコールバックなどでデータを取得すればよいのですが
複数ファイルをajax()により取得し、全てのファイルダウンロードが完了したのを
待ってから処理を走らせたい場合どうすればよいのかわかりません。

任意の型のイベントを発生させて、それに対するハンドラ割り当てができればよいのですが
javascriptに不慣れなこともあり、調べてもその方法がわかりませんでした。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

>任意の型のイベントを発生させて、それに対するハンドラ


>割り当てができればよいのですが
スクリプト内からイベントを発生させることは可能ですが(↓)、別にイベントを利用しなくてもよいのではないでしょうか?
https://developer.mozilla.org/ja/DOM/element.dis …

ajaxの状態を管理する配列かなにかを用意しておいて、リクエストするときに新しいフラグをセット、complete時にそのフラグをリセットするようにしておくとします。
その時に同時に他のフラグが全てリセットされているかをチェックして、全部リセットされていれば『全て完了』と判断してもよいのではないでしょうか。

ajaxのリクエストが時間差をもって行なわれるような場合は、その間に終了している可能性もあるので(それぞれで終了と判断してもよければ問題ありありませんが)、もう少し調整が必要になるのかも。
    • good
    • 0
この回答へのお礼

一応イベントは発生させれるのですね、調査不足でした。

確かにそれぞれでcompleteイベントがあがっているのだからフラグでその情報を管理すればいけますね。
ありがとうございました。

お礼日時:2011/05/02 10:13

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報