Задать вопрос
uaf0x
@uaf0x
Всего понемногу

Как отследить завершение всех ajax запросов на странице?

Собственно задача такая, нужно в цикле запустить N запросов к серверу, после выполнения всех запросов нужно будет пустить ещё 1 контрольный. Как отследить завершение всех запросов ajax на странице ?

Сейчас мой говнокод выглядет так :
jQuery('.btn-primary').on('click', function(event) {
		event.preventDefault();
		for (var i = 0; i <= jQuery('#count').val(); i++) 
		{
			var form = jQuery('.form-horizontal').serializeArray();
			jQuery.ajax({
				url: 'myurl',
				type: 'POST',
				data: {form, i},
					success:function(data)
					{
						jQuery('.cool').append(data);
					}			
			});

		}		
	});


Очень буду рад и счастлив конструктивным предложением.

PS
Предложения аля учи мат часть можете не писать и так в процессе :)
  • Вопрос задан
  • 2718 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Да, конечно, можно смотреть на значение внешнего счетчика с определенным интервалом...
Но можно сразу сделать нормально:
var form = {foo: 'bar'},
    requests = [],
    index,
    $xhr;

for (var index = 0; index <= 5; index++) {
    $xhr = $.post('myurl', {'form': form, 'index': index});

    $xhr.done(function (data) {
        console.log('request done');
    });

    requests.push($xhr);
}

$.when.apply($, requests).done(function () {
    console.log('all done');
})

P.S. Как сделать так, чтобы функция выполнялась только после того, как другая завершится?
Ответ написан
@sergeystepanov1988
Сделать с помощью метода ajaxStop:
$( document ).ajaxStop(function() {
     $('.cool').append(data);  
});
Ответ написан
@LiguidCool
Ну как вариант сделать счетчик, и при вызове запроса прибавлять его, а при окончании или ошибке вычитать. При нуле все запросы закончатся.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 11:03
5000 руб./за проект
18 дек. 2024, в 10:44
130000 руб./за проект
18 дек. 2024, в 10:02
7000 руб./за проект