Добрый вечер товарищи друзья.
Есть 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 ? или какие у вас еще идеи? потому что мой подход мне кажется немного граблями.