我想建立一個web應用從服務器獲取數據,並將其顯示給用戶。腳本每10秒從服務器獲取數據,如果數據發生更改,它會提醒用戶。這是我現在使用的代碼,但它每隔10秒就會發出一次數據是否已更改的警告。的Javascript JSON比較
那麼,如何做,我需要改變我的素文字,使它比較舊的JSON和新的JSON,看看它們是不同的,如果他們是顯示警報更新顯示給用戶數據之前?
$('#ListPage').bind('pageinit', function(event) {
getList1();
});
setInterval ("getList1()", 10000);
var old = "";
function getEmployeeList1() {
$.getJSON(serviceURL + 'getemployees.php?' + formArray, function(data) {
if(data != old){ // data from the server is not same as old
$('#nollalista li').remove();
keikka = data.key;
$.each(keikka, function(index, lista) {
$('#nollalista').append('<li><a href="employeedetails.html?id=' + lista.IND + '">' +
'<h4>' + lista.OSO + '</h4>' +
'<p>' + lista.AIKA + '</p>' +'</a></li>');
});
$('#nollalista').listview('refresh');
if(old != "")
alert("New data!");
old = data;
}
});
}
你如何確定平等兩個JavaScript對象:HTTP:/ /stackoverflow.com/questions/201183/how-do-you-determine-equality-for-two-javascript-objects – fcalderan 2012-04-17 09:52:53
** **從未傳遞的字符串爲'的setInterval()'或'的setTimeout()'。這樣做與使用'eval()'一樣糟糕,並且只要使用變量,就會導致不可讀和可能不安全的代碼,因爲您需要將它們插入到字符串中,而不是傳遞實際變量。正確的解決方案是'setInterval(function(){/ * your code *)},msecs);'。 'setTimeout()'同樣適用。如果你只是想調用一個函數不帶任何參數,你也可以直接傳遞函數名:'的setInterval(someFunction,毫秒);'(請注意,有沒有** **'()'函數名稱後面) – ThiefMaster 2012-04-17 09:53:03