- 89 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 17:44:30.66 ID:szf/wSg3.net]
- >>88
流れを良く追ってないが、 > xmlhttp.send(); は非同期通信なので、呼び出し後データを受信する前に処理はすぐに下に遷移する。 > alert(data); /* こんな感じで表示したい */ なので、この行ではまだデータは受信していない。 Ajaxの受信完了時に > var data = JSON.parse(xmlhttp.responseText); が実行されるが、そもそも>>76のコードが一つの関数なら、もうその関数の 実行は終わってるわけでreturnなどはできない。 ではどうするかというと、>>76がfunc()の中だとして、 ・var data = ...の行の下に処理を書く ・global_data = としてグローバル変数に入れる(もちろん、受信前は空) ・funcにcallback関数を引数で渡す var my_callback = function(data) { //dataを参照する処理 }; があったとして、 func = function(callback_func) { ... var data = JSON.parse(xmlhttp.responseText); callback_func(data); ... } func(my_callback); で呼び出す。
|

|