Как установить функцию «остановка всего ajax» для нескольких запросов ajax? - PullRequest
0 голосов
/ 22 января 2011
xhr = $.ajax;
xhr({
  success: function(){ ajaxProcess = false; },
  beforeSend : function (i) {
    if(ajaxProcess==true)
    xhr.abort();
    else
    ajaxProcess = true;
  }
});

$('.button').click(function(){
  $.getJSON('file.php', function(data){});
};

$('.button2').click(function(){
  $.getJSON('file.php', function(data){});
};

1 Ответ

1 голос
/ 22 января 2011

Используйте глобальный обработчик ajaxSend http://api.jquery.com/ajaxSend/

EDIT

Чтобы прекратить выполнение всех запросов, вы можете сделать что-то вроде следующего. Создайте массив объектов запроса. Затем в глобальном обработчике ajaxSend вы можете добавить запрос в массив и выполнить проверку. Если проверка прошла успешно, выполните итерацию по массиву и прервите все запросы. Затем вы можете создать глобальный обработчик ajaxStop, который удаляет запросы из массива запросов по мере их завершения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...