Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

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): });

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

19.6.3.1. Часто используемые параметры

Ниже перечислены параметры, которые наиболее часто передаются функции

jQuery.ajax:

type

Определяет метод HTTP-запроса. По умолчанию имеет значение «GET». Другим наиболее часто используемым значением является «POST». Допускается указывать также другие методы HTTP-запросов, такие как «DELETE» и «PUT», но они поддерживаются не всеми броузерами. Обратите внимание, что имя этого параметра может вводить в заблуждение: он не имеет никакого отношения к типу данных в запросе или ответе, и для него лучше подошло бы имя «method».

url

URL-адрес загружаемых данных. При выполнении GET-запросов параметр data добавляется в конец этого URL-адреса. Библиотека jQuery может автоматически добавлять параметры в строку URL при выполнении JSONP-запросов и когда параметр cache имеет значение false.

data

Данные, добавляемые в конец URL-адреса (для GET-запросов) или отправляемые в теле запроса (для POST-запросов). Может быть строкой или объектом. Объекты обычно преобразуются в строки, как описывалось во врезке в разделе 19.6.2.2, однако имеются некоторые исключения, которые приводятся в описании параметра

processData
.

dataType

Определяет тип ожидаемых данных в ответе и способ их обработки библиотекой jQuery. Допустимыми значениями являются «text», «html», «script», «json», «jsonp» и «xml». Суть этих значений описана во врезке в разделе 19.6.2.3. Этот параметр не имеет значения по умолчанию. Если он не указан, библиотека jQuery проверит заголовок «Content-Type» ответа, чтобы определить, что делать с полученными данными.

contentType

Определяет HTTP-заголовок «Content-Type» запроса. По умолчанию имеет значение «application/x-www-form-urlencoded», которое обычно используется HTML-формами и большинством серверных сценариев. Если вы установили параметр

type
в значение «POST» и собираетесь отправить в теле запроса простой текст или XML-документ, вам должны также установить этот параметр.

timeout

Предельное время ожидания в миллисекундах. Если этот параметр установлен и запрос не завершится в течение указанного времени, выполнение запроса прервется и будет вызвана функция обратного вызова

error
с кодом состояния «timeout». По умолчанию параметр
timeout
имеет значение 0, которое означает, что выполнение запроса будет продолжаться до его завершения и никогда не будет прервано.

Поделиться:
Популярные книги

Миграция или нашествие?

Жириновский Владимир Вольфович
Документальная литература:
публицистика
5.20
рейтинг книги
Миграция или нашествие?

Рассвет русского царства 3

Грехов Тимофей
3. Новая Русь
Фантастика:
историческое фэнтези
альтернативная история
5.00
рейтинг книги
Рассвет русского царства 3

Чай и водка в истории России

Похлебкин Вильям Васильевич
Дом и Семья:
кулинария
6.25
рейтинг книги
Чай и водка в истории России

Неучтенный элемент. Том 9

NikL
9. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 9

Перерождение: Монстр

Kanekiru Kogitsune
Фантастика:
фэнтези
рпг
попаданцы
7.97
рейтинг книги
Перерождение: Монстр

Законы Рода. Том 10

Мельник Андрей
10. Граф Берестьев
Фантастика:
юмористическая фантастика
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 10

Егерь. Системный зверолов

Скиба Николай
1. Зверолов
Фантастика:
рпг
уся
фэнтези
фантастика: прочее
попаданцы
6.50
рейтинг книги
Егерь. Системный зверолов

Этьен и его тень

Воробьев Евгений Захарович
Приключения:
прочие приключения
5.00
рейтинг книги
Этьен и его тень

Эйнштейн. Его жизнь и его Вселенная

Айзексон Уолтер
Документальная литература:
биографии и мемуары
5.50
рейтинг книги
Эйнштейн. Его жизнь и его Вселенная

Пора подниматься!

Кийосаки Ким
Деловая литература:
личные финансы
5.00
рейтинг книги
Пора подниматься!

Избранное

Лукницкий Павел Николаевич
Проза:
советская классическая проза
5.00
рейтинг книги
Избранное

Третий. Том 5

INDIGO
5. Отпуск
Фантастика:
космическая фантастика
фантастика: прочее
5.67
рейтинг книги
Третий. Том 5

Иллюстрированная Библия. Ветхий Завет

Коллектив авторов
Религия и эзотерика:
религия
5.00
рейтинг книги
Иллюстрированная Библия. Ветхий Завет

Лесной исчезнувший мир. Очерки петербургского предместья

Коллектив авторов
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Лесной исчезнувший мир. Очерки петербургского предместья