Показать сообщение отдельно
  #1 (permalink)  
Старый 25.04.2013, 22:25
Новичок на форуме
Отправить личное сообщение для dracula1985 Посмотреть профиль Найти все сообщения от dracula1985
 
Регистрация: 25.04.2013
Сообщений: 2

Ожидание ответа от $.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 запросов почти мгновенно и потом уже приходят от них ответы... беспорядочно особенно если будет выполнение каждого запроса иметь разное время ... да и запросов до нескольких десятков может быть и не желательно их все скопом посылать...

Так вот как сделать паузу до того момента пока не вернутся данные с сервера и не исполнится колбек функция, и после уже чтобы посылался следующий запрос?
Ответить с цитированием