问题描述
<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()
。