我有一个verify.php文件,它将检查数据库条目并返回1(如果存在)或0(如果它不存在)。但是这个数据库将在0到5秒之间更新。因此,至少在前5秒内,返回值可能为0。
在另一个页面中,我想用AJAX检查verify.php的返回,并在每次检查之间以1秒的间隔重试5次。如果在5秒检查中的任何时间,它收到1,退出检查循环并显示成功消息。
我写过这篇文章,但它只检查过一次而且我不知道如何检查x次:
table
非常感谢任何帮助。感谢。
答案 0 :(得分:2)
代码
BindProperty
答案 1 :(得分:0)
没有为你编写代码,这里有一个"蛮力"方法......
将ajax调用包装在函数中 声明"可以停止"以及该函数之外的一个称为变量的变量 每次调用函数时,都会增加时间调用变量 设置"可以停止"你的ajax响应代码中的变量
创建一个看起来递归的函数; 它检查"可以停止"变量和保释一旦设定 它调用你的ajax函数 如果计数通过,它会检查时间调用变量和保释 它调用setTimeout来调用自身;
使用window.setTimeout(或者ajax包装器)等待第二次
答案 2 :(得分:0)
使用window.setInterval(function , timeInMillis)
功能为ajax查询计时。使用布尔值检查特定查询何时返回。
只有当它返回时,计时器才会进行新查询。
祝你一切顺利。
<script type="text/javascript">
var queryOn = false;
var interval;
$(function (){
var attempts = 0;
interval = window.setInterval(
function () {
if (queryOn === false) {
queryOn = true;
var url = "...url";
$.ajax({
type: 'POST',
url: url,
success: function (msg) {
queryOn = false;
if (msg === 1) {
$('#status').text('success');
window.clearInterval(interval);
} else {
$('#status').text('failed');
}
if(attempts === 5){
window.clearInterval(interval);
}
++attempts;
}
});
}
}, 5000);
});
</script>