我想使用的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