Допустим, я использую $ .get для получения массива идентификаторов пользователей.
Давайте теперь предположим, что я хочу просмотреть все эти идентификаторы пользователей (пример: [13, 14, 15, 23, 34, 56]) и получить определенную информацию о каждом из них, затем заполнить текстовое поле на основе результатов и перейти к следующему.
$.each(array_of_users, function(i, id) {
$.get("/somefunction", {id}, function(data){
appendToField(data);
}, "json");
});
Как бы я сделал так, чтобы все эти циклы не происходили приодин раз и затем ждать результата вместе асинхронно, как они делают сейчас, но один за другим?То есть я хочу, чтобы цикл не переходил к следующему элементу до тех пор, пока запросы ajax не скажут, что это нормально.
Каков наилучший способ подойти к этому без использования задержек или тайм-аутов, но реальных ответов отфункция, выполняющая обработку?
Приветствия
Редактировать: Стильное представление внешнего вида "командной строки" важно для меня, поэтому я хотел бы, чтобы textarea получал сообщения по одномуодин как записи обрабатываются.Я знаю, что мог бы сделать это через PHP намного проще и без хлопот или потенциальных разрывов JS, но я хотел бы сделать это стильно через JS для имитации этого «консольного» вида, как в:
10: 01: 33: Пользователь 13 обработан: Дата истечения срока действия изменена на 13.02.2011.
10:01:34: Пользователь 16 не обработан: Целевая защита от изменений системы ..
10:01:34: Пользователь 17 не обработан:Целевая защита от системных изменений ..
10:01:35: Пользователь 23 обработан: Дата истечения срока действия изменена на 19.02.2011.
и т. Д.
Edit2:
Я простонашел этот замечательный маленький плагин, который позволяет мне делать именно то, что я хочу.Однако я не могу найти средства, чтобы остановить очередь после ее запуска.Это теперь новая проблема.Любые идеи, кто-нибудь?Перезагрузка страницы, естественно, работает, но я бы хотел, чтобы она застыла на месте, как только я нажму кнопку «Стоп», чтобы пользователь мог просто скопировать весь отчет прямо из текстового поля.