0
我需要加載尚未加載的新消息,並將它們添加到div,但是我不知道如何。
最好的方法是按時間檢查它。 var chatdata = null;
從PHP獲取JSON的新項目
$.ajax({
type: "GET",
data: {id: id},
url: "/chatbin/receive-bin.php",
dataType: "json",
cache: false,
async: true,
contentType: "application/json",
success: function(data) {
chatdata = "";
$('#chattext').html('');
$.each(data.messages, function(i,dat){
chatdata += "<div class='message'><img class='chatuserimg' src='/assets/userpics/" + dat.id + "_64.png'><span class='userdname'>" + dat.dname + "<span class='time'>" + dat.time + "</span></span><div class='message_text'>" + dat.message + "</div></div>\n";
});
gotoBottom();
$('#chattext').append(chatdata);
gotoBottom();
c_id = id;
autofocus();
setInterval(checkNewmsg, 1000);
},
error: function(xhr, status, error) {
alert('There was an error while sending the request, please try again later.');
}
});
JSON文件:
{"messages": [
{"dname":"Person1", "id":"1", "message":"Hi", "time":"25.06.2013, 14:49"},
{"dname":"Person2", "id":"2", "message":"Cheers", "time":"25.06.2013, 14:50"}
]}
你會發現這個問題有幫助http://stackoverflow.com/ question/15449364/how-to-check-if-a-json-object-value-has-changed-when-new-request-is-captured – PoX
是的,你可以使用時間戳發送你收到的最後一條消息的時間戳。其他方法是使用長輪詢,並且只在有新消息可用時發送響應。 – Pitchinnate
哪一個是消息ID或時間的唯一標識符 – Sundar