Как обновить таблицу только новым или измененным значением, используя jQuery и ajax? - PullRequest
2 голосов
/ 09 декабря 2011

Я новичок в jQuery!

У меня есть одна таблица, которая загружает данные с сервера с помощью ajax \ jQuery каждые x секунд, получая данные в формате JSON. Моя проблема заключается в том, что я хочу обновить только определенную ячейку, если значение изменено или новое. Как я могу сравнивать старые данные с новыми данными, поскольку новые данные поступают в формате JSON, а старые данные хранятся в таблицах .....

Вот мой код:

window.setInterval(function() { 
    // this code will execute on every 5s 
    // so we could send an AJAX request to verify if we 
    // have new data. Example with jQuery: 
    $.getJSON('/foo', { }, function(result) { 

    }); 
}, 5000);

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

Использовать .data

window.setInterval(function() { 
    $.getJSON('/foo', { }, function(result) { 
        //Get the old data stored in the body using jquery data
        var old_data = $('body').data('my_data');
        //If objects are not the same, update cell
        if ( ! equal_objects(result, old_data) )
             update_cell();
        //Store the new data
        $('body').data('my_data',result);
    }); 
}, 5000);

OBS: equal_objects - это функция, которую вы должны реализовать для сравнения 2 объектов, поскольку JavaScript не предоставляет эту функцию.Подробности смотрите в этом посте: Сравнение объектов в JavaScript

0 голосов
/ 09 декабря 2011

Добавьте уникальный идентификатор к своим тэд-тегам

<td id="tdname">200</td>

if(document.forms[0].getElementsByTagId("tdname").innerText != data[0].value){
    document.forms[0].getElementsByTagId("tdname").innerText == data[0].value;
}

Что-то в этом роде, теперь просто переберите все ваши данные и обновите их по одному.

...