Ожидание ответа от $.get()
Есть такой вопросик...
Как сделать выполнение n-ного количества запросов $.get() но чтобы каждый начинался ровно после того как будет получен ответ от предыдущего и выполнится колбек функция... например есть такой скрипт ind.html <html> <head> <meta charset='UTF-8'> <title>Test</title> <script src='jquery.js'></script> <script src='ind.js'></script> </head> <body> <span id='1' class='sp'>Раз</span><br> <span id='2' class='sp'>Два</span><br> <span id='3' class='sp'>Три</span><br> <span id='4' class='sp'>Четыре</span><br> <span id='5' class='sp'>Пять</span><br> <span id='6' class='sp'>Шесть</span><br> <span id='7' class='sp'>Семь</span><br> <span id='8' class='sp'>Восемь</span><br> <span id='9' class='sp'>Девять</span><br> <span id='10' class='sp'>Десять</span><br> <button id='btn'>Начать</button> </body> </html> ind.php эмитируется типа ответ от сервера с задержкой <?php $step = $_GET["step"]; $id = $_GET["id"]; if ($step==1){ Sleep(5); echo json_encode(array("err"=>"0", "id"=>$id)); } и int.js $(function($){ $('#btn').click(function(){ var mass = ["1","2","3","4","5","6","7","8","9","10"]; $.each(mass,function(){ $.get('ind.php',{"step":1,"id":this}, function(json){ $('#'+json.id).css({"color":"red"}); },'json'); }); }); }); В таком виде посылается 10 запросов почти мгновенно и потом уже приходят от них ответы... беспорядочно особенно если будет выполнение каждого запроса иметь разное время ... да и запросов до нескольких десятков может быть и не желательно их все скопом посылать... Так вот как сделать паузу до того момента пока не вернутся данные с сервера и не исполнится колбек функция, и после уже чтобы посылался следующий запрос? |
Попробуй так
var count = 0 function ajax(){ if (count<10){ count++; $.ajax({ type: "GET", url: "test.js", success:function(){ setTimeout("ajax",Math.random()); // Для случайной задержки)) } }); }else{ count=0; } } $('#btn').click(function(){ ajax(); }); |
Tek,
Ок, так работает, сейчас попробую подделать под свои нужды... |
Часовой пояс GMT +3, время: 04:35. |