Как остановить JQuery AJAX-запрос, отправленный через $ .get? - PullRequest
14 голосов
/ 12 ноября 2010

Я делаю ajax-запрос, используя $ .get, как только пользователь вводит символ в поле ввода, я хочу прервать предыдущие вызовы ajax и затем сделать новый, есть ли способ?

edit

решено!

Я только что обнаружил, что $ .get - это сокращенный путь к $ .ajax, и поэтому он возвращает XHR, поэтому мы можем вызвать abortна эту переменную.

1 Ответ

27 голосов
/ 12 ноября 2010

Вы можете использовать .abort() в XMLHttpRequest, который возвращается $.get.

var req = $.get('ajax/test.html', function(data) {
            $('.result').html(data);
            alert('Load was performed.');
          });

//Abort request
req.abort()

Из jQuery.ajax () документация:

Функция $ .ajax () возвращает объект XMLHttpRequest, который она создает.Обычно jQuery обрабатывает создание этого объекта внутри, но пользовательскую функцию для ее создания можно указать с помощью опции xhr.Возвращенный объект, как правило, можно отбросить, но он предоставляет интерфейс более низкого уровня для наблюдения и манипулирования запросом.В частности, вызов .abort () для объекта остановит запрос до его завершения.

Подробнее о .abort(): XMLHttpRequest.abort ()

Существует также плагин jQuery AjaxQueue для обработки нескольких запросов Ajax, выполняемых параллельно.

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