【发布时间】:2019-04-28 12:08:27
【问题描述】:
我目前有一个 AJAX 请求来更新 JSON 文件中的 HTML 表。 我现在想要一种方法来提醒更改,提醒已添加的新表格项。
下面是如何填充 HTML 表格的示例。 我尝试将 JSON 请求存储到 JSON.stringify 中,将其存储到变量中,然后将其与上次运行时进行比较。不走运,我只返回真/假,我希望比较返回新旧数据的区别。
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 数据与上次传入的数据进行比较,找出差异并发出警报? 任何帮助将不胜感激。
【问题讨论】:
-
当你说“运气不好”时,你到底是什么意思?如果 JSON 数据相同,那么应该可以进行比较。 JSON 中是否有一些元素会改变每个 AJAX 调用?也许是时间戳?如果是这样,您可以将其排除在比较之外。
-
请注意,每次
populate_table运行时,您都会向文档就绪事件添加另一个事件处理程序...您可能希望删除该位,而是将您的初始调用包装到populate_table和setInterval在文档就绪处理程序中。 -
@jwh20 ,编辑我的帖子以获得更多上下文。我想比较并找出不同之处。当我说“不走运”时,我的意思是说我只能返回真/假,而不是实际的差异。我不知道如何做相当于 Powershell cmdlet Compare-Object 的例子。
标签: javascript html json ajax