Книга: JavaScript. Подробное руководство, 6-е издание
19.6.3.2. Функции обратного вызова
19.6.3.2. Функции обратного вызова
Следующие параметры определяют функции, вызываемые на разных стадиях в ходе выполнения Ajax-запроса. С параметром success вы уже знакомы: это функция обратного вызова, которая передается методам, таким как jQuery.getJS0N().
Обратите внимание, что библиотека jQuery также посылает извещения в ходе выполнения Ajax-запроса в виде событий (если параметр global не был установлен в значение false).
context
Этот параметр определяет объект, используемый в качестве контекста - значения ссылки this
- для различных функций обратного вызова. Данный параметр не имеет значения по умолчанию, и если его не устанавливать, функции обратного вызова будут вызываться в контексте объекта с параметрами, в котором они определяются. Значение параметра context
также воздействует на порядок возбуждения событий механизмом поддержки Ajax (раздел 19.6.4). Значением этого параметра должен быть объект Window
, Document
или Element
, в котором могут возбуждаться события.
beforeSend
Этот параметр определяет функцию, которая должна вызываться перед отправкой Ajax-запроса на сервер. Первым аргументом этой функции передается объект XMLHttpRequest
, а вторым - объект с параметрами запроса. Функция beforeSend
дает программе возможность установить собственные НТТР-заголовки в объекте XMLHttpRequest
. Если эта функция вернет false, выполнение Ajax-запроса будет прервано. Обратите внимание, что для выполнения междоменных запросов типов «script* и «jsonp* объект XMLHttpRequest
не используется и функция, определяемая параметром befоreSend
, не вызывается.
success
Этот параметр определяет функцию, которая должна вызываться в случае успешного выполнения Ajax-запроса. В первом аргументе ей передаются данные, отправленные сервером. Во втором аргументе - код состояния, сгенерированный библиотекой jQuery, и в третьем - объект XMLHttpRequest
, использовавшийся для выполнения запроса. Как описывалось в разделе 19.6.2.3, тип данных в первом аргументе зависит от значения параметра dataType
или заголовка «Content-Type* в ответе сервера. Если данные имеют тип «xml», в первом аргументе передается объект Document
. Если данные имеют тип «json* или «jsonp*, в первом аргументе передается объект, полученный в результате разбора ответа сервера в формате JSON. Если данные имеют тип «script», ответом является текст загруженного сценария (однако к моменту вызова функции сценарий уже будет выполнен, поэтому в данном случае ответ обычно игнорируется). Для других типов ответ интерпретируется как простой текст, содержащийся в запрошенном ресурсе.
Код состояния во втором аргументе обычно является строкой «success». Но, если был установлен параметр ifModified
, в этом аргументе может также передаваться строка «notmodified*. В этом случае сервер не отправляет данные в ответе, и в первом аргументе будет передано значение undefined. Для выполнения междоменных запросов на получение данных типов «script* и «jsonp» используется элемент <script>, а не объект XMLHttpRequest
, поэтому для таких запросов в третьем аргументе вместо объекта XMLHttpRequest
будет передаваться значение undefined.
error
Этот параметр определяет функцию, которая должна вызываться в случае неудачи Ajax-запроса. В первом аргументе этой функции передается объект XMLHttpRequest
запроса (если таковой использовался). Во втором аргументе-код состояния, сгенерированный библиотекой jQuery. Это может быть строка «error» - в случае ошибки протокола HTTP, «timeout» - в случае превышения времени ожидания и «parsererror» - в случае ошибки, возникшей в ходе разбора ответа сервера. Например, если XML-документ или объект в формате JSON будет сформирован неправильно, функция получит код состояния «parser-error». В этом случае в третьем аргументе функции error будет передан объект Error, представляющий исключение. Обратите внимание, что запросы с параметром dataType="script",
возвращающие недопустимый программный код JavaScript, не вызывают ошибки. Любые ошибки в сценарии просто игнорируются и вместо функции error вызывается функция success.
complete
Этот параметр определяет функцию, которая должна вызываться по завершении Ajax-запроса. Каждый Ajax-запрос завершается либо успехом и вызывает функцию success, либо неудачей и вызывает функцию error. Библиотека jQuery вызывает функцию complete после вызова функции success или error. В первом аргументе функции complete передается объект XMLHttpRequest
, а во втором -код состояния.
- 8.4.3.2. Функция обратного вызова nftw()
- 9.1.5.3. Функции завершения
- Программирование с помощью таймеров обратного вызова
- Аргументы функции в Python
- 3. Функции
- Новые функции API для работы с Blob и массивами
- Математические функции
- Определение необходимого системного вызова
- Размытые функции
- 7.3. Финансовые функции
- 4.3. Логические функции и таблицы истинности
- B1.7. Функции обработки ошибок