Задать вопрос
t-alexashka
@t-alexashka
Сразу пишу legacy код

Как определить что в данный момент выполнется AJAX?

Добрый вечер товарищи друзья.

Есть ajax-запросы, параллельное выполнение которых я блокируя создавая глобальную переменную
is_ajax = false;
а в момент выполнения какого-либо ajax я проверяю если is_ajax = true то выхожу из ф-ии, а если false то ставлю is_ajax = true и выполняю запрос. после успешного/неуспешного выполнения меняю на is_ajax = false, тем самым даю добро на выполнение других ф-ии. Таким образом пока один запрос не выполнится с любым результатом - другой запустить не получится.

Схематически это приблизительно так:
var is_ajax = false;
function getPages() {
  if(is_ajax) return;
  is_ajax = true;
  $.post(...)
  .success(function(r){... is_ajax = false; })
  .fail(function(r){ ... is_ajax = false; })
}


Собственно сам вопрос: можно это как то упростить? Есть может событие какое аля xhr.onStart xhr.onEnd ? или какие у вас еще идеи? потому что мой подход мне кажется немного граблями.
  • Вопрос задан
  • 268 просмотров
Подписаться 2 Комментировать
Подписчики вопроса 2 К ответам на вопрос (3)