我每隔20分钟拨打一次AJAX电话并更新一些数据。现在,有时当我拨打电话时,到下一次呼叫发生时,它仍然没有收到上次呼叫的数据,从而堆叠两个呼叫。这种情况不断发生,服务器在某些情况下会被窒息。
我想要的是取消当前呼叫的响应尚未收到的那一分钟的AJAX呼叫。
这是我的代码:
setInterval(function(){
let now = new Date();
if(now.getSeconds() === 20){
$.ajax({
url: url,
headers: { 'x-cyclops-ajax': 'yes' },
method: 'POST',
dataType: 'json',
success: function(data) {
var chart = $('#container').highcharts();
var keys = Object.keys(data["histData"]);
$( "#main-div" ).empty();
for( var i=0; i< keys.length; i++) {
chart.series[i].setData(data["histData"][keys[i]]["histFailure"], true);
$('#main-div').append( '<div class="homepage-availability-inner-div"><h1 class="homepage-availability-text"> ' + keys[i] + ': <span class="dashboard-success">' + data["availData"][keys[i]] + ' </span> </h1></div>');
}
chart.xAxis[0].setCategories(data["histKeys"]);
console.log("Data:" + JSON.stringify(data["availData"]));
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Did not hit the AJAX call");
}
});
}
}, 1000);
感谢任何帮助。