Если по какой-либо причине вы не хотите использовать ajaxStop
, как предлагает Ник (возможно, вы беспокоитесь о других, несвязанных ajax-запросах, которые вас отталкивают), вы можете отслеживать, сколько запросов вы отправили, ипроверьте, когда каждый из них преуспевает / терпит неудачу:
var requestCount = 0;
$('#links a').each(function (index, el) {
url = $(el).attr('href');
++requestCount;
$('<div class="article" />').appendTo('#content')
.load(url, function(){
filterOneArticle(this);
--requestCount;
if (requestCount == 0) {
filterAllArticles();
}
});
});
чтобы выглядел так, как будто имеет условие гонки (Что если первая статья завершит загрузку до того, как мы запросим вторую?) , но это не так.JavaScript в браузерах является однопоточным (за исключением использования веб-работников , что вы должны сделать явно), и поэтому мы знаем, что мы завершим наш цикл, инициируя запросы до того, как первое завершение может пройти.