@EvgMul

Как запустить двойной цикл ajax запросов на js?

Здравствуйте. У меня следующая проблема.
Требуется распарсить XML файл.

Я разбираю его примерно вот такой функцией (опустил некоторые детали, такие как заполнение прогресс бара, чтобы была понятней суть):
function parsing(iterationObject, numberObjects) {

	return $.ajax({
		url: "parse.php",
		method: "GET",
		success: function(data) {
			
			if (iterationObject <= numberObjects) {
				iterationObject++;
				parsing(iterationObject, numberObjects);
			}
		}
	});
}


На данный момент задача несколько изменилась. В каждом объекте может содержаться (а может и нет) ряд ссылок на изображения, которые нужно выгрузить.

Т.е. сейчас требуется реализовать алгоритм:
1. Запускаем цикл по объектам
2. Проверяем наличие ссылок на изображения
3. Если ссылки имеются, запускаем цикл на выгрузку изображений по одному (чтобы реализовать второй прогресс бар для изображений)

В виду асинхронности js никак не могу сообразить как правильно и красиво подобную штуку реализовать. Подскажите, пожалуйста.
Заранее благодарен всем отозвавшимся.
  • Вопрос задан
  • 296 просмотров
Пригласить эксперта
Ответы на вопрос 2
async: true

По умолчанию, все запросы отсылаются асинхронно (т.е. значение true). Если необходимо посылать запросы синхронно, установите false. Синхронные запросы могут на время выполнения запроса заблокировать браузер.
Ответ написан
@ukoHka
Всего понемногу
Попробуйте написать
function parsing(iterationObject, numberObjects) {
  return $.ajax({
    url: "parse.php",
    method: "GET",
    success: function(data) {
      if (data.hasImages){
parsingImages(image, numberImages, iterationObject );
} else 
      if (iterationObject <= numberObjects) {
        iterationObject++;
        parsing(iterationObject, numberObjects);
      }
    }
  });
}

В функции parsingImages() будете обрабатывать картинки такой же рекурсией.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы