Tôi đang cố gắng sử dụng setTimeout để kiểm tra xem dữ liệu có tồn tại trong một bảng không:bằng cách sử dụng SetTimeout với các cuộc gọi Ajax
Nếu dữ liệu tồn tại không tìm nạp dữ liệu. Nếu dữ liệu không tồn tại tìm nạp dữ liệu bằng cách sử dụng tải và sau đó làm điều tương tự mỗi x phút.
Đây là những gì tôi có cho đến nay. Vì lý do nào đó, setTimeout
không hoạt động khi nó chạm vào khối If.
Tôi thậm chí không chắc chắn nếu đây là cách tốt nhất để làm điều này.
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);
Mọi trợ giúp sẽ được đánh giá cao.
Cập nhật ...
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);
}
});
}
Bạn đã [đã kiểm tra debugger của bạn] (http://blog.niftysnippets.org /2011/03/no-excuse.html) để xem có gì sai? JS có vẻ hoàn toàn ổn: http://jsfiddle.net/FgT22/ – gideon
Có. Nó hoạt động tốt. Nó hoạt động như mong đợi khi không có dữ liệu trong cơ sở dữ liệu (đó là khi phản hồi là đúng). Khi nó sai, tôi muốn kiểm tra lại sau x phút. Đó là nơi mà vấn đề dường như là. Nó không kiểm tra lại. Ida của tôi thanh toán bù trừ thời gian chờ thành công là như vậy kiểm tra tiếp theo không nên được bắn trước khi tải trước đó là hoàn thành – mkizito76
Đây là những gì tôi có bây giờ và nó có vẻ làm việc. Đây có phải là cách tốt nhất để làm điều này? Nhân tiện, cảm ơn bạn đã giúp đỡ – mkizito76