仅当内容是新的时,才在jquery ajax请求之后更新div

时间:2015-04-08 22:39:38

标签: php jquery ajax

我最近开始学习jQuery而且我正在尝试创建一个小消息系统,我已经让消息每2秒更新一次。但是,如果没有任何新消息,我不希望消息更新。这是我当前的消息更新代码。

$(document).ready(function () {
setInterval(function() {
    $.get("get_messages.php", function (result) {
        if ($('.messages').html() != result){
        $('.messages').html(result);
        }
    });
}, 2000);

});

即使div和结果应该相同,if语句似乎也不起作用。

1 个答案:

答案 0 :(得分:0)

我希望您在服务器上有时间戳或messageID,可以告诉您的脚本在上次检查后是否有新消息。

离。

var lastMessageID = 0;
function checkMessages(){
$.ajax(url,{

    data:{
       last_message_id:lastMessageID
    },
    success:function(data){
    // Count new messages
    if (Object.keys(data).length > 0){  
        $.each(data,function(index, item){
            $('.messages').prepend("<span class='message'>"+item.message+"</span>");
    });
    // We suggest that this is our last message 
    lastMessageId = data[Object.keys(data).length-1].id;
    }
 }
});
}
var intervalM = setInterval(function(){
     checkMessages();
},2000);

请使用gziped JSON数据保存一些树。 :)