当前位置: 代码迷 >> java >> clearInterval()不起作用
  详细解决方案

clearInterval()不起作用

热度:96   发布时间:2023-08-02 11:05:41.0
<script>
var interval_time;

function executeQuery() {
    $.ajax({
        method: 'GET',
        url: "${pageContext.request.contextPath}/get-session-timeout",
        success: function(jsonRes, textStatus, jqXmlHttpRequest) {
            console.log('success log session out');
            console.log(jqXmlHttpRequest.status);
        }

    });
    interval_time = setInterval(executeQuery, 30000);
}

function stopInterval() {
    console.log('stop interval hit');
    clearInterval(interval_time);
}
</script>
<script>
$(document).ready(function(e) {
    console.log('ready');
    interval_time = setInterval(executeQuery, 30000);

});
</script>



//FILE UPLOAD AJAX CALL

function uploadJqueryForm() {
    //logic
    $uploadFrm.ajaxForm({
        beforeSend: function() {
            interval_time = setInterval(executeQuery, 30000);
            //logic
        },
        success: function(jsonRes) {
            stopInterval();
            //logic
        },
        error: function(xhr, textStatus,
            errorThrown) {
            stopInterval();
            //logic
        },
        complete: function(xhr, extStatus, errorThrown) {
            stopInterval();
        },
        dataType: "text"
    }).submit();
}
return false;
}

您多次覆盖interval_time 然后,当您调用stopInterval()只会停止interval_time中的最后一个间隔,而不会停止其他interval_time

如果在不停止运行的变量中使用setInterval() ,则将无法清除它。 因此,您应该使用clearInterval() ,然后再使用setInterval()

  相关解决方案