$.post с ожиданием ответа внутри .each()
Есть перебор блоков:
div.each(function(){ $.post(url,vars,function(data){ //....actions }) }) Например в переборе 10 блоков div, из каждого мы вытягиваем данные и шлем их на сервер и ждем ответа, если делать так, то 10 запросов пошлются сразу, ответа друг за другом ждать они не будут. А нужно сделать так: div.each(function(){ //..получили данные из текущего div //шлем запрос и ждем ответ $.post(url,vars,function(data){ //....actions }) //как дождались ответа и выполнили действия с данными полученными в ответе от сервера приступаем к следующему шагу .each() }) Я думаю можно слепить такой костыль: div.each(function(){ var serverStatus=false; //..получили данные из текущего div //шлем запрос и ждем ответ $.post(url,vars,function(data){ //....actions serverStatus=true; }) //каждых пол секунды проверяем переменную serverStatus (завершились ли действия над ответом от сервера) var i = function f() { if(serverStatus){ clearInterval(i); break;} //если завершились действия над ответом от сервера, то выходим из цикла и приступаем к след итерации .each() } setInterval(i, 500); }) это все еще обернуть в цикл, .... Но это по моему мнению очень плохой костыль, посоветуйте что-то более адыкватное! p.s. спасибо за внимание) |
Цитата:
Посылать следующие данные только в ответе сервера. Правда нужно учитывать, что сервер может и не ответить... Как и ответить ошибкой. |
Часовой пояс GMT +3, время: 16:39. |