所以情况如下:
我有一个从服务器提取数据的递归异步 AJAX 调用。此递归调用仅在用户登录时发生一次。我有另一个页面需要 AJAX 调用才能导航(基本上是延迟加载的树)。当第一个 AJAX 调用发生时,这些其他调用需要一段时间才能完成,而且由于第一个调用可能会发出多达 2,000 个请求,因此这种延迟有时会相当长。
基本上我想要实现的是在进行另一个调用时“暂停”递归调用。伪代码:
function recursiveAjax(){
$.ajax( {
async : true,
url : 'someurl',
dataType : 'json',
beforeSend : function(xhr) {
// do stuff
},
error : function(xhr, ajaxOptions, thrownError) {
// handle errors
},
success : function(data) {
//conditions
recursiveAjax();
}
});
}
function navigationAjax(){
$.ajax( {
async : true,
url : 'someurl',
dataType : 'json',
beforeSend : function(xhr) {
// pause recursiveAjax();
},
error : function(xhr, ajaxOptions, thrownError) {
// handle errors
},
success : function(data) {
//conditions
// resume recursiveAjax();
}
});
}