如何使用jQuery和ajax更新只有新值或更改值的表?

时间:2011-12-09 15:51:02

标签: javascript jquery ajax dynamic

我是jQuery的新手!

我有一个表,每隔x秒使用ajax \ jQuery从服务器加载数据,以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 个答案:

答案 0 :(得分:2)

使用.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不提供此功能。有关详细信息,请参阅此帖子:Object comparison in JavaScript

答案 1 :(得分:0)

为您的td标记添加唯一ID

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

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

类似的东西,现在只需遍历所有数据并逐个更新。