JavaScript 関数でサーバーを呼び出し、10 レコードのバッチを取得します。すべての記録が揃うまでこれを行う必要があります。
まず、ajax 呼び出しのエラー コールバックで while ループを終了する while ループを作成しました。
途中で、ajax呼び出しが非同期であるため、ループ内で大量のリクエストを発生させるため、それが機能しないことに気付き始めました。これを行うための標準的なパターンがあると確信していますが、方法がわかりません。
呼び出しがエラーを返さない限り、ループ内で ajax 呼び出しを実行するにはどうすればよいですか? 私が構築していた疑似コード:
var stillRecordsAvailable = true;
while (stillRecordsAvailable) {
// get the next batch of records
$.ajax({
url: '/getrecords.json',
data: {data_set_id: dataset.id},
type: 'GET',
success: function(data, textStatus, xhr) {
// do something
},
error: function(xhr, textStatus, errorThrown) {
// nothing left to do
stillRecordsAvailable = false;
}
});
正しい方向に向けてくれてありがとう