我有一个功能,该功能是从第三方获取记录,并且每10秒钟执行一次此功能。
问题是因为此函数在很短的时间后执行,所以当我通过firefox调试时,它显示了很长的ajax队列。我在考虑为什么不添加一条语句,该语句可以向下一步发出有关ajax执行的信号。因为我正在执行相同的功能,并且哪个作业是相同的,所以如果先前的作业仍在执行相同的作业,则没有必要针对同一作业执行另一个作业。我正在尝试
function someThingPrecessing(){
if(sessionStorage.do == true){
$.ajax(function(){
continue...
});
}
sessionStorage.do = true;
sessionStorage.do = false;
}
setInterval(someThingPrecessing,10000);
但是上面的一个没有用,有人可以指导我该怎么做。我要感谢。
答案 0 :(得分:0)
您应该在调用下一个请求之前检查ajax请求是否已完成。下面是一个示例:
var ajax_ongoing=false;
function someThingPrecessing(){
if(!ajax_ongoing){
ajax_ongoing=true;
$.ajax(function(){
success : function(data) {
ajax_ongoing=false;
},
error : function(data, textStatus, errorThrown) {
ajax_ongoing=false;
}
});
}
}
setInterval(someThingPrecessing,10000);