Показать сообщение отдельно
  #1 (permalink)  
Старый 18.07.2018, 12:00
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Цикл for не успевает?
Добрый день. Есть код который получает объект из sql базы и заносит его в таблицу:
function get_data() {
$.ajax({
        type: 'ajax',
        url: 'get_data',
        dataType: 'json',
        success: function (data) {
                for (i = 0; i < data.length; i++){
                    html += '<tr>' +
                    '<td class="success">' + data[i].RO + '</td>' +
                    // перечень параметров
                    '</tr>';                 
                }
                $("#table").html(html);
        }
});
}
setInterval(function(){
        get_data ();
}, 2000);


Так вот, далее допустим я отслеживаю состояние параметров объектов и что то хочу с ним сделать в таблице, пишу функцию
function see_table (atribut, data){
        if(data[atribut] == 'меня не устраивает'){
                //что то там делаю
        }
}


И такой думаю, параметров много, засуну ка я их в мой цикл:
function get_data() {
$.ajax({
        type: 'ajax',
        url: 'get_data',
        dataType: 'json',
        success: function (data) {
                for (i = 0; i < data.length; i++){
                    html += '<tr>' +
                    '<td class="success">' + data[i].RO + '</td>' +
                    // перечень параметров
                    '</tr>'; 
                   see_table (i, data);                
                }
                $("#table").html(html);
        }
});


Но когда я так делаю функция не выполняет то что должна, данные передаются нормально в нее.
А вот если сделать так, то функция see_table прекрасно отрабатывает:

function get_data() {
$.ajax({
        type: 'ajax',
        url: 'get_data',
        dataType: 'json',
        success: function (data) {
                for (i = 0; i < data.length; i++){
                    html += '<tr>' +
                    '<td class="success">' + data[i].RO + '</td>' +
                    // перечень параметров
                    '</tr>';               
                }
                $("#table").html(html);

                 see_table (0, data);
                 see_table (1, data);
                 see_table (2, data);
                 see_table (3, data);
                
        }
});

То есть передаю вручную вне цикла, но объектов внутри data  будет много и это не вариант.  
Получается во время выполнения цикла функция просто не успевает отработать данные? Или я криворукий и так не делается?
Ответить с цитированием