19.6.3. Функция jQuery.ajax()
Все утилиты поддержки архитектуры 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): });
***********************************************
Больше книг — больше знаний!
Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ