问题描述
<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;
}
1楼
 
     您多次覆盖interval_time 。 
     然后,当您调用stopInterval()只会停止interval_time中的最后一个间隔,而不会停止其他interval_time 。 
2楼
 
     如果在不停止运行的变量中使用setInterval() ,则将无法清除它。 
     因此,您应该使用clearInterval() ,然后再使用setInterval() 。