Я пытаюсь использовать SetTimeout, чтобы проверить, существует ли данные в таблице:использованием SetTimeout с Ajax звонки
Если существует данные не выборки данных. Если данные не существуют, извлекайте данные с использованием нагрузки, а затем делайте то же самое каждые 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
Да. Он работает нормально. Он работает так, как ожидалось, когда в базе данных нет данных (то есть когда ответ верен). Когда он ошибочен, я хочу перепроверять через x минут. Вот тут и проблема. Он не перепроверяет. Моя идентификация очистки тайм-аута на успех такова, что следующая проверка не должна быть запущена до того, как будет завершена предыдущая загрузка. – mkizito76
Это то, что у меня есть сейчас, и это работает. Это лучший способ сделать это? Кстати, спасибо за помощь – mkizito76