Ajax-события

Материал из JQuery

Перейти к: навигация, поиск

Выполнение ajax-запросов сопровождается возникновением различных событий, которые могут быть обработаны с помощь пользовательских функций. На данной странице вы сможете найти список всех этих событий, а так же узнать, в каком порядке они происходят.


Локальные события

"Подписаться" на события этого типа можно только в настройках низкоуровнего ajax-запроса:

$.ajax({
   beforeSend: function(){
     // Действия, которые будут выполнены перед выполнением этого ajax-запроса
   },
   complete: function(){
     // Действия, которые будут выполнены после завершения ajax-запроса
   }
   // ......
 });

Отметим, что установленные таким образом настройки будут действовать только для текущего запроса. Что бы установить их по умолчанию, используйте функцию $.ajaxSetup().


Глобальные события

Эти события передаются всем элементам DOM, поэтому привязка к ним происходит посредством обработчиков событий на элементах:

 $("#loading").bind("ajaxSend", function(){
   $(this).show();
 });
 
 // или, то же самое, но с помощью специальной функции
 $("#loading").ajaxSend(function(){
   $(this).show();
 })

Глобальные события могут быть отключены с помощью параметра global в настройках ajax-запроса:

// во время выполнение следующего ajax-запроса, обработчики глобальных событий не будут вызваны
 $.ajax({
   url: "test.html",
   global: false,
   // ...
 });

Список событий

Далее следует список всех событий, расположенных в том же порядке, в котором они будут происходить при выполнении ajax-запроса. Важно отметить, что два из перечисленных событий, происходят не при каждом ajax-запросе, это события ajaxStart и ajaxStop. Первое из них происходит в момент начала запроса, с условием, что в это же время не запущены другие запросы. ajaxStop происходит при завершении запроса, так же, только в случае отсутствия других активных запросов.

  • ajaxStart  (Глобальный)
    Происходит в момент начала запроса, с условием, что в это же время не запущены другие запросы.
  • beforeSend  (Локальный)
    Происходит перед выполнением запроса, что позволяет произвести необходимые настройки, такие как изменение объекта XMLHttpRequest.
  • ajaxSend  (Глобальный)
    Так же, происходит перед выполнением запроса.
  • success  (Локальный)
    Происходит в момент удачного завершения запроса.
  • ajaxSuccess  (Глобальный)
    Аналогично предыдущему.
  • error  (Локальный)
    Происходит в случае неудачного завершения запроса.
  • ajaxError  (Глобальный)
    Аналогично предыдущему.
  • complete  (Локальный)
    Происходит при завершении запроса (неважно, удачном оно было или нет).
  • ajaxComplete  (Глобальный)
    Аналогично предыдущему.
  • ajaxStop  (Глобальный)
    Происходит при завершении запроса, с условием, что в это же время не запущены другие запросы.