Php 每隔1秒重试Ajax请求5次
我有一个verify.php文件,它将检查数据库条目,如果它存在,则返回1;如果它不存在,则返回0。但此数据库将在0到5秒之间更新。因此,至少在前5秒钟,返回值可能为0 在另一个页面中,我想用AJAX检查verify.php的返回,并在每次检查之间间隔1秒重试5次。如果在5秒钟检查中的任何时候,它收到1,则退出检查循环并显示成功消息 我写过这篇文章,但它只检查一次,我不知道如何让它检查x次:Php 每隔1秒重试Ajax请求5次,php,jquery,ajax,Php,Jquery,Ajax,我有一个verify.php文件,它将检查数据库条目,如果它存在,则返回1;如果它不存在,则返回0。但此数据库将在0到5秒之间更新。因此,至少在前5秒钟,返回值可能为0 在另一个页面中,我想用AJAX检查verify.php的返回,并在每次检查之间间隔1秒重试5次。如果在5秒钟检查中的任何时候,它收到1,则退出检查循环并显示成功消息 我写过这篇文章,但它只检查一次,我不知道如何让它检查x次: <p id="status"></p> <script type="tex
<p id="status"></p>
<script type="text/javascript">
var url = 'verify.php';
$('#status').text('Please wait...');
$(document).ready(function(){
$.ajax({
type: 'POST',
url:url,
success: function(msg){
if (msg == 1){
$('#status').text('success');
}else{
$('#status').text('failed');
}
}
});
});
</script>
var url='verify.php';
$('#status').text('请稍候…');
$(文档).ready(函数(){
$.ajax({
键入:“POST”,
url:url,
成功:功能(msg){
如果(msg==1){
$('状态').text('成功');
}否则{
$('状态').text('失败');
}
}
});
});
非常感谢您的帮助。谢谢。不用为您编写代码,这里有一个“暴力”方法 将ajax调用包装到函数中 在该函数外声明一个“can stop”和一个名为times的变量 每次调用函数时,递增调用变量的次数 在ajax响应代码中设置“can stop”变量 创建一个看起来递归的函数; 它检查“can stop”变量,并在设置后退出 它调用ajax函数 它检查名为variable的时间,并在计数通过时执行bail 它调用setTimeout来调用自己
使用window.setTimeout(或ajax包装器)等待一秒钟,而不为您编写代码,下面是一种“暴力”方法 将ajax调用包装到函数中 在该函数外声明一个“can stop”和一个名为times的变量 每次调用函数时,递增调用变量的次数 在ajax响应代码中设置“can stop”变量 创建一个看起来递归的函数; 它检查“can stop”变量,并在设置后退出 它调用ajax函数 它检查名为variable的时间,并在计数通过时执行bail 它调用setTimeout来调用自己 使用window.setTimeout(或其ajax包装器)等待一秒钟
- 将AJAX调用转化为函数
- 有一个变量跟踪您的尝试次数
- 如果需要的话,在自己的回调中调用AJAX函数,延迟一秒钟,也就是说,您还没有尝试完,并且您的状态是错误的
使用
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>
var queryOn=false;
var区间;
$(函数(){
var=0;
interval=window.setInterval(
函数(){
if(queryOn==false){
queryOn=true;
var url=“…url”;
$.ajax({
键入:“POST”,
url:url,
成功:功能(msg){
queryOn=false;
如果(msg==1){
$('状态').text('成功');
窗口。清除间隔(间隔);
}否则{
$('状态').text('失败');
}
如果(尝试次数===5){
窗口。清除间隔(间隔);
}
++企图;
}
});
}
}, 5000);
});
使用窗口.setInterval(函数,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>
var queryOn=false;
var区间;
$(函数(){
var=0;
interval=window.setInterval(
函数(){
if(queryOn==false){
queryOn=true;
var url=“…url”;
$.ajax({
键入:“POST”,
url:url,
成功:功能(msg){
queryOn=false;
如果(msg==1){
$('状态').text('成功');
窗口。清除间隔(间隔);
}否则{
$('状态').text('失败');
}
如果(尝试次数===5){
窗口。清除间隔(间隔);
}
++企图;
}
});
}
}, 5000);
});