我想使用的setTimeout來檢查,如果在表中存在的數據:使用的setTimeout與Ajax調用
如果存在數據不獲取數據。如果數據不存在,則使用load讀取數據,然後每x分鐘執行一次相同的操作。
這是我到目前爲止所。由於某些原因,setTimeout
在遇到If塊時不起作用。
我甚至不確定這是否是最好的方法。
var sTimeOut = setTimeout(function() {
$.ajax({
url: 'CheckIfDataExists/' +
new Date().getTime(),
success: function (response) {
if (response == 'True') {
$('.DataDiv')
.load('GetFreshData/' + new Date()
.getTime(), { "Id": $("#RowID").val() });
}
},
complete: function() {
clearTimeout(sTimeOut);
}
});
}, 10000);
任何幫助將不勝感激。
更新...
setTimeout(function(){checkData()}, 5000);
function checkData(){
$.ajax({
url: 'CheckIfDataExists/' +
new Date().getTime(),
success: function (response) {
if (response == 'True') {
$('.DataDiv')
.load('GetFreshData/' + new Date()
.getTime(), { "Id": $("#RowID").val() });
} else {
$('.OutOfWindow').html('No Data Found');
setTimeout(function() { checkData() }, 5000);
}
},
complete: function() {
// clearTimeout(sTimeOut);
}
});
}
你[檢查你的調試器(http://blog.niftysnippets.org /2011/03/no-excuse.html)看看有什麼不對嗎? JS看起來非常好:http://jsfiddle.net/FgT22/ – gideon 2012-02-19 16:19:41
是的。它工作正常。當數據庫中沒有數據時(即響應爲真時),它按預期工作。如果它是錯誤的,我想在x分鐘後重新檢查。這就是問題所在。它不重新檢查。我清除成功超時的ida是這樣的,下次檢查不應該在前一次加載完成之前被觸發 – mkizito76 2012-02-19 16:24:12
這就是我現在所看到的,它似乎工作。這是做這件事的最好方法嗎?順便說一句,謝謝你的幫助 – mkizito76 2012-02-19 16:40:19