Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Циклы и отслеживание загрузки данных (https://javascript.ru/forum/dom-window/72838-cikly-i-otslezhivanie-zagruzki-dannykh.html)

dima85 02.03.2018 00:11

Циклы и отслеживание загрузки данных
 
var data;
for (var i in domen) {
  loadTest(domen[i],i);
}

function loadTest(domen,number) {
  if (number == 1){
    $.getJSON(domen+"/test.json", function(data) {
      load2(domen,data);
    });
  } else {
    load2(domen,data);
  }
}


Первое обращение к loadTest должно загрузить с сайта json данные, пока данные не загрузились цикл for должен подождать. Последующая работа цикла for, должна обращаются сразу к load2. Подскажите как это реализовать? Мой пример не ждет загрузку json данных.

dima85 02.03.2018 08:59

var data;
var states = 50000;
for (var i in domen) {
  loadTest(domen[i],i);
}

function loadTest(domen,number) {
  if (number == 1){
    $.getJSON(domen+"/test.json", function(data) {
      load2(domen,data);
states = 0;
    });
  } else {
    setTimeout(function() {load2(domen,data);},states);
  }
}

Появилась мысль. Все последующие load2 можно поместить в таймер setTimeout. Но как-то можно время сробатывания таймера запускать с переменной, допустим json загрузился отправляем states = 0 и все таймеры сработают.

ksa 02.03.2018 15:35

Цитата:

Сообщение от dima85
пока данные не загрузились цикл for должен подождать

Так запускай цикл после получения данных...


Часовой пояс GMT +3, время: 01:51.