Próbuję użyć setTimeout w celu sprawdzenia, czy istnieją dane w tabeli:użyciu setTimeout z Ajax wzywa
Jeżeli istnieją dane nie pobierać dane. Jeśli dane nie istnieją, pobierz dane za pomocą obciążenia, a następnie wykonaj to samo co x minut.
Oto, co mam do tej pory. Z jakiegoś powodu, setTimeout
nie działa, gdy trafi w blok If.
Nie jestem nawet pewien, czy to najlepszy sposób na zrobienie tego.
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);
Każda pomoc zostanie bardzo doceniona.
Updated ...
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);
}
});
}
byłaś [sprawdził swój debugger] (http://blog.niftysnippets.org /2011/03/no-excuse.html), aby zobaczyć, co jest nie tak? JS wydaje się idealnie w porządku: http://jsfiddle.net/FgT22/ – gideon
Tak. Działa dobrze. Działa zgodnie z oczekiwaniami, gdy w bazie danych nie ma danych (czyli wtedy, gdy odpowiedź jest prawdziwa). Gdy jest to fałsz, chcę ponownie sprawdzić po x minutach. Właśnie tam wydaje się problem. To się nie sprawdza. Mój ida w celu wyzerowania limitu czasu na sukces jest taki, że następnego sprawdzenia nie należy odpalać przed zakończeniem poprzedniego obciążenia. – mkizito76
To jest to, co mam teraz i wygląda na to, że działa. Czy to najlepszy sposób na zrobienie tego? Przy okazji, dziękuję za pomoc. – mkizito76