У меня есть цикл jquery .each с .get внутри. Я хочу подождать, пока все попадания внутри цикла не будут завершены (каждый получает толчок в .complete новый элемент в массив), а затем сделать ajax post запрос в файл php, чтобы сохранить созданный массив. Я не знаю, как заставить запрос ajax ждать, пока каждый из них не будет завершен. До сих пор ajax срабатывает очень быстро, и поэтому массив все еще пуст, так как входы внутри каждого из них еще не завершены, когда он запускается. Может быть, у вас есть идея.
Вот скрипт:
$('#ScanButton, .ScanButton').click(function() {
var array = ["http://www.xyz.com/bla/bla/summary.html",
"http://www.xyz.com/blu/blu/summary.html",
];
dataArray = [];
$.each(array, function(n, val) {
$.get(val, function(res) { //get the html source of this website
var data = {
}
}).complete(function() {
alert("complete");
dataArray.push(data);
});
});
data = YAHOO.lang.JSON.stringify(dataArray);
$.ajax({
async: false,
type: 'post',
cache: false,
url: 'test.php',
data: {myJson: data}
});
return false;
});
Я ценю любую помощь. Спасибо:)