Сравнение и оповещение таблиц JSON в HTML - PullRequest
1 голос
/ 28 апреля 2019

В настоящее время у меня есть запрос AJAX для обновления таблицы HTML из файла JSON.Теперь мне нужен способ оповещения об изменениях, оповещения о добавленных новых элементах таблицы.

Ниже приведен пример заполнения таблицы HTML.Я попытался сохранить JSON-запрос в JSON.stringify, сохранить его в переменной, а затем сравнить его с последним разом, когда он выполнялся ... не повезло, я только возвращаю true / false, я хочу, чтобы сравнение возвращалоРазница между старыми и новыми данными.

            function populate_table(){
                $(document).ready(function(){
                    $.getJSON("data.json", function(data){
                        var update_table = '';
                        $.each(data, function(key, value){
                            update_table += '<tr>';
                            update_table += '<td>'+value.name+'</td>';
                            update_table += '<td>'+value.date+'</td>';
                            update_table += '<td>'+value.address+'</td>';
                            update_table += '<td>'+value.phone+'</td>';
                            update_table += '</tr>';
                        });
                        $('#my_table tbody').html(update_table);
                    });
                });
            };
            populate_table(); 
            setInterval(function(){
                populate_table() 
            }, 5000); 

Не изменяя внутреннее заполнение JSON, есть ли способ сравнить новые данные AJAX, поступающие с данными, которые поступили в прошлый раз, найти различия и предупредить?Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 28 апреля 2019

Определите элементы массива и вставьте их в массив, затем вы можете сравнить массив с новыми данными

var old_data = new Array;
function populate_table(){
...
old_data .push(name:value.name,
dtae:value.date,
addres: value.address,
phone:value.phone);
$('#my_table tbody').html(update_table);
0 голосов
/ 28 апреля 2019

Может быть, вы можете попытаться сохранить данные в localStorage. И в следующий раз, когда вы получите данные, вы можете извлечь данные из последнего Ajax-вызова и сравнить их, используя цикл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...