JSON到HTML表比较和警报

时间:2019-04-28 12:08:28

标签: javascript html json ajax

我目前有一个AJAX请求,用于从JSON文件更新HTML表。 现在,我想要一种提醒更改的方法,使用已添加的新表项目提醒。

下面是一个如何填充HTML表的示例。 我试过将JSON请求存储到JSON.stringify中,将其存储到一个变量中,然后将其与上次运行时进行比较。不走运,我只返回true / false,我想用compare返回新旧数据之间的差异。

            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 :(得分:0)

也许您可以尝试将数据存储在localStorage中。下次获取数据时,可以从上一个Ajax调用中提取数据,并使用循环将它们进行比较

答案 1 :(得分:0)

定义一个arry并将元素推入数组,然后可以将数组与新数据进行比较

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);