Ajax-события
Ajax-запросы порождают несколько событий, которые можно обработать при необходимости. Эти события делятся на два вида: локальные и глобальные. Ниже приведён перечень всех ajax-событий в порядке их срабатывания. События ajaxStart и ajaxStop рассматриваются по отношению ко всем запросам одновременно. Остальные события возникают для каждого события отдельно.
ajaxStart- Глобальное событие. Событие возникает перед отправкой запроса, если в данный момент нет других выполняющихся запросов.
beforeSend- Локальное событие. Наступает перед отправкой запроса. Позволяет вносить изменения в XMLHttpRequest-объект.
ajaxSend- Глобальное событие. Наступает перед отправкой запроса.
success- Локальное событие. Наступает при успешном выполнении запроса (нет ошибок с сервера, нет ошибок с полученными данными).
ajaxSuccess- Глобальное событие. Наступает при успешном выполнении запроса.
error- Локальное событие. Наступает при завершении запроса с ошибкой. В этом случае событие
successне наступит. ajaxError- Глобальное событие. Наступает при завершении запроса с ошибкой.
complete- Локальное событие. Наступает после завершения запроса, независимо от его результата (успешно или с ошибкой).
ajaxComplete- Глобальное событие. Наступает после завершения запроса.
ajaxStop- Глобальное событие. Событие возникает после завершения запроса, если в данный момент нет других выполняющихся запросов.
Локальные события
К локальным относятся события, обработчики которых устанавливаются индивидуально для каждого запроса при его вызове. Пример:
$.ajax({
beforeSend: function() {
/* Обработка события beforeSend */
},
complete: function() {
/* Обработка события complete */
}
/* ..... */
});
Всего существует 4 локальных события: beforeSend, success, error и complete. Способы обработки этих событий приводятся в описании функции jQuery.ajax().
Глобальные события
К глобальным относятся события, обработчики которых устанавливаются на объект document. Данные обработчики являются общими для всех ajax-запросов и могут быть запущены любым из них. Глобальные события: ajaxStart, ajaxSend, ajaxSuccess, ajaxError, ajaxComplete и ajaxStop.
Обработчики глобальных событий можно установить с помощью метода on():
$(document).on({
'ajaxSend': function() {
/* Обработка события ajaxSend */
},
'ajaxComplete': function() {
/* Обработка события ajaxComplete */
}
});
Кроме того, для установки обработчиков глобальных событий можно использовать индивидуальные методы:
ajaxStart()- Устанавливает обработчик события
ajaxStart. ajaxSend()- Устанавливает обработчик события
ajaxSend. ajaxSuccess()- Устанавливает обработчик события
ajaxSuccess. ajaxError()- Устанавливает обработчик события
ajaxError. ajaxComplete()- Устанавливает обработчик события
ajaxComplete. ajaxStop()- Устанавливает обработчик события
ajaxStop.
Срабатывание глобальных событий можно отменить, присвоив параметру global значение false:
$.ajax({
global: false,
/* ... */
});