19.6.3. Функция jQuery.ajax()

We use cookies. Read the Privacy and Cookie Policy

Все утилиты поддержки архитектуры Ajax в библиотеке jQuery в конечном итоге вызывают jQuery.ajax() - самую сложную функцию во всей библиотеке. Функция jQuery. ajax() принимает всего один аргумент: объект с параметрами, свойства которого определяют детали, касающиеся выполнения Ajax-запроса. Вызов jQuery.getScript(url,callback), например, эквивалентен следующему вызову функции jQuery.ajax():

jQuery.ajax({

  type: "GET”,

// Метод НТТР-запроса.

  url: url, // URL-адрес запрашиваемых данных.

  data: null, // Не добавлять дополнительные данные в URL.

  dataType: "script"  // Выполнить ответ как сценарий.

  success: callback // Вызвать эту функцию по завершении.

});

Эти пять фундаментальных параметров можно также установить при использовании функций jQuery.get() и jQuery.post(). Однако при непосредственном использовании jQuery.ajax() имеется возможность указать большое количество других параметров. Все параметры (включая пять основных, представленных выше) детально описываются ниже.

Прежде чем погрузиться в описание параметров, обратите внимание, что имеется возможность определить значения по умолчанию любых из этих параметров, передав объект с параметрами функции jQuery. ajaxSetup():

jQuery.ajaxSetup({

  timeout: 2000, // Прерывать все Ajax-запросы через 2 секунды

  cache: false // Игнорировать кэш броузера, добавляя время в URL

}):

После выполнения программного кода, приведенного выше, указанные параметры timeout и cache будут действовать для всех Ajax-запросов (включая высокоуровневые утилиты, такие как jQuery.get() и load()), при вызове которых не указываются значения этих параметров.

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

Поддержка Ajax в версии jQuery 1.5

В версии jQuery 1.5, которая вышла, когда эта книга готовилась к печати, модуль поддержки архитектуры Ajax был полностью переписан, и в нем появилось несколько новых удобных особенностей. Самое важное, что функция jQuery.ajax() и все утилиты поддержки Ajax, описанные выше, теперь возвращают объект jqXHR. Этот объект имитирует прикладной интерфейс объекта XMLHttpRequest даже для запросов (например, выполняемых функцией $.getScript()), не использующих объект XMLHttpRequest. Кроме того, объект jqXHR определяет методы success() и error(), которые можно использовать для регистрации функций, вызываемых в случае успешного или неудачного завершения запроса. То есть вместо того чтобы передавать функцию обратного вызова функции jQuery.get(), например, ее можно зарегистрировать с помощью метода success() объекта jqXHR, возвращаемого этой утилитой:

jQuery.get("data.txt")

     .success(function(data) { console.log("Получено ", data): })

     .success(function(data) { process(data): });

***********************************************