for文でXMLHttpRequestの結果を取った後にfor文を再開させる良い方法はありませんか?
本当にXMLHttpRequestは同期処理設定で実行されていますか?
XMLHttpRequestから同期でリクエストを投げた場合、レスポンスを受信するまでsend()メソッドは応答を返さず、処理を停止します。つまり、結果を取得するまで待ってから次の処理を実行することができます。
以下のコードを参考にしてみてください。
javascript
1var xhr = new XMLHttpRequest();
2
3for (var i=0; i<=3; i++) {
4 console.log("--FOR LOOP START [i=" + i + "]--");
5
6 xhr.open("get", "test.txt", false); // ●ここのfalseが同期実行を示している
7 xhr.send();
8 console.log("get:" + xhr.responseText);
9
10 console.log("--FOR LOOP END--");
11 console.log("");
12}
13
14// 【結果】
15// --FOR LOOP START [i=0]--
16// get:<data>abc</data>
17// --FOR LOOP END--
18//
19// --FOR LOOP START [i=1]--
20// get:<data>abc</data>
21// --FOR LOOP END--
22//
23// --FOR LOOP START [i=2]--
24// get:<data>abc</data>
25// --FOR LOOP END--
26//
27// --FOR LOOP START [i=3]--
28// get:<data>abc</data>
29// --FOR LOOP END--
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。