clearInterval()不适用于php中的ajax,在提交时调用get和post方法
我正在使用setInterval,然后无法在代码中清除Interval。请看代码 我得到了complete的值,它是真的,并且也输入了if语句,但是clearInterval仍然不起作用。我很累,在过去的10个小时里一直在努力,但是没有找到bug。我正在检查console.log,但它没有停止间隔clearInterval()不适用于php中的ajax,在提交时调用get和post方法,php,jquery,ajax,setinterval,clearinterval,Php,Jquery,Ajax,Setinterval,Clearinterval,我正在使用setInterval,然后无法在代码中清除Interval。请看代码 我得到了complete的值,它是真的,并且也输入了if语句,但是clearInterval仍然不起作用。我很累,在过去的10个小时里一直在努力,但是没有找到bug。我正在检查console.log,但它没有停止间隔 jQuery(document).ready(function() { var complete = false; var Interval; jQuery( "#form"
jQuery(document).ready(function() {
var complete = false;
var Interval;
jQuery( "#form" ).submit(function() {
Interval = setInterval(get, 100);
post();
return false;
});
function post(){
var url = "my/url/here";
var data = {
'action': 'action/here',
'name': 'value'
};
jQuery.post(url, data, function(response) {
jQuery("#emails").html(response);
}).done(function() {
//alert( "second success" );
})
.fail(function() {
//alert( "error" );
})
.always(function() {
complete = true;
//alert( "finished" );
});
} // End post()
function get(){
var url = "url/goes/here";
if(complete == true){
clearInterval(Interval);
}
var data = {
'action': 'action/here',
};
jQuery.get(url, data, function(response) {
console.log(response);
jQuery("#progress").html(response);
});
} // End get()
});
下面是原始代码。ajax调用工作正常,但clearInterval不工作
如果取消注释警报已完成;,那会出现吗?我还相信您确保了在控制台中没有收到任何错误消息。不,脚本工作正常。警报完成;也弹出,并没有错误显示。获得和发布工作也很好。但是我不知道为什么clearInterval不起作用我只是把你的代码放在一把小提琴里,它似乎很好地取消了间隔:-有一个额外的请求,因为在清除之后没有返回,但除此之外,它似乎工作得很好。如果我替换ifcomplete==true{clearIntervalInterval;}清除间隔时间;那么clearInterval工作是您的问题,在完成一个额外的请求之后,还是它无限期地继续发出请求?
<script type="text/javascript" >
jQuery(document).ready(function() {
jQuery(".juee_emails_row").hide();
var juee_complete = false;
var juee_Interval;
jQuery( "#juee_form" ).submit(function() {
jQuery(".juee_emails_row").show();
juee_Interval = setInterval(juee_get, 100);
juee_post();
return false;
});
function juee_post(){
var data = {
'action': 'juee_get_emails',
'juee_data_option': jQuery('input[name=juee_data_option]:checked', '#juee_form').val()
};
jQuery.post(ajaxurl, data, function(response) {
jQuery("#juee_emails_td").html(response);
}).done(function() {
//alert( "second success" );
})
.fail(function() {
//alert( "error" );
})
.always(function() {
juee_complete = true;
//alert( "finished" );
});
} // End juee_post()
function juee_get(){
if(juee_complete == true){
clearInterval(juee_Interval);
}
var data = {
'action': 'juee_progress',
};
jQuery.get(ajaxurl, data, function(response) {
console.log(response + " email found");
jQuery("#juee_progress_td").html("");
jQuery("#juee_progress_td").html(response);
});
} // End juee_get()
});
</script>