Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
clearInterval()不适用于php中的ajax,在提交时调用get和post方法_Php_Jquery_Ajax_Setinterval_Clearinterval - Fatal编程技术网

clearInterval()不适用于php中的ajax,在提交时调用get和post方法

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"

我正在使用setInterval,然后无法在代码中清除Interval。请看代码 我得到了complete的值,它是真的,并且也输入了if语句,但是clearInterval仍然不起作用。我很累,在过去的10个小时里一直在努力,但是没有找到bug。我正在检查console.log,但它没有停止间隔

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>