だからここに状況があります:
サーバーからデータをプルする再帰的な非同期AJAX呼び出しがあります。この再帰呼び出しは、ユーザーがログインしたときに1回だけ発生します。ナビゲートするために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();
}
});
}