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

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

Жанры

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

19.6.2.1. jQuery.getScript

Функция

jQuery.getScript
принимает в первом аргументе URL-адрес файла со сценарием на языке JavaScript. Она асинхронно загружает и выполняет этот сценарий в глобальной области видимости. Выполняться могут сценарии как общего происхождения с документом, так и сторонние:

// Динамически загрузить сценарий с некоторого другого сервера

jQuery.getScript(" http://example.com/js/widget.js ");

Во втором аргументе можно передать функцию обратного вызова, и в этом случае библиотека jQuery вызовет ее сразу после того, как загруженный сценарий будет выполнен.

// Загрузить библиотеку и воспользоваться ею после загрузки

jQuery.getScript("js/jquery.my_plugin.js", function {

$('div').my_plugin; // Воспользоваться загруженной библиотекой

});

Для получения текста сценария, который должен быть выполнен, функция

jQuery.getScript
обычно использует объект
XMLHttpRequest
. Но для выполнения междоменных запросов (когда сценарий поставляется сервером, отличным от того, откуда был получен текущий документ), библиотека jQuery использует элемент
<script>
(раздел 18.2). Если запрос удовлетворяет ограничениям политики общего происхождения, в первом аргументе функции обратного вызова передается текст сценария, во втором - код состояния «success» и в третьем - объект
XMLHttpRequest
, использовавшийся для получения текста сценария. Возвращаемым значением функции
jQuery.getScript
в данном случае также является объект
XMLHttpRequest
. Для междоменных запросов, которые выполняются без участия объекта
XMLHttpRequest
, текст сценария не сохраняется. В этом случае в первом и третьем аргументах функции обратного вызова передается значение undefined, и возвращаемым значением функции
jQuery.getScript
также является значение undefined.

Функция обратного вызова, передаваемая функции

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

19.6.2.2. jQuery.getJSON

Функция

jQuery.getJSON
подобна функции
jQuery.getScript:
она загружает текст и затем обрабатывает его особым образом перед вызовом указанной функции обратного вызова. Функция
jQuery.getJSON
не выполняет загруженный текст как сценарий, а выполняет синтаксический разбор этого текста как данных в формате JSON (используя функцию
jQuery.parseJSON:
описывается в разделе 19.7). Функцию
jQuery.getJSON
имеет смысл использовать, только когда ей передается функция обратного вызова. Если содержимое URL было благополучно загружено и разобрано, как данные в формате JSON, то полученный в результате объект передается функции обратного вызова в первом аргументе. Как и при использовании функции
jQuery.getScript
, во втором и третьем аргументах передаются код состояния «success» и объект
XMLHttpRequest
:

// Допустим, что data.json содержит текст: '{"х":11"у":2}'

jQuery.getJS0N("data.json", function(data) {

// Здесь data - это объект {x:1. у:2}

});

Передача данных утилитам поддержки Ajax в библиотеке jQuery

Большинство методов поддержки архитектуры Ajax в библиотеке jQuery принимают аргумент (или параметр), определяющий данные для отправки на сервер вместе с URL. Обычно эти данные принимают вид строки, закодированной в формате URL, пар имя/значение, отделяющихся друг от друга символами амперсанда. (Этот формат представления данных известен, как MIME-тип «application/x-www-form-urlencoded». Его можно рассматривать как аналог формата JSON - формата представления простых JavaScript-объектов в виде строк.) При выполнении HTTP-запросов методом GET эта строка с данными добавляется в конец URL-адреса запроса. При выполнении запросов методом POST она отправляется в теле запроса после отправки НТТР-заголовков.

Получить строку с данными в этом формате можно с помощью метода

serialize
объекта
jQuery
, содержащего формы или элементы формы. Отправить, например, HTML-форму с помощью метода load можно следующим образом:

$("#submit_button").click(function(event) {

S(this.form).load( // Заменить форму, загрузив...

this.form.action, // из указанного url

$(this. form). serialize); // с данными, добавленными в него

event.preventDefault: // Отменить отправку формы по умолч.

this.disabled = "disabled": // Предотвратить несколько

}); // попыток отправки

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

jQuery.param
. Эта вспомогательная функция интерпретирует свойства объекта как пары имя/значение и, например, преобразует объект {х:1 ,у:'hello”} в строку "x=1&y=hello".

В версии jQuery 1.4 функция

jQuery.param
способна обрабатывать более сложные объекты. Если значение свойства объекта является массивом, для каждого элемента этого массива будет создана отдельная пара имя/значение, а к имени свойства будут добавлены квадратные скобки. Если значением свойства является объект, имена свойств этого вложенного объекта помещаются в квадратные скобки и добавляются к имени внешнего свойства. Например:

S.param({a:[1,2,3]}) // Вернет "a[]=1&a[]=2&a[]=3”

$.param({o:{x:1,y:true))) // Вернет "o[x]=1&o[y]=true"

$.param({o:{x:{y:[1.2]}>>) // Вернет "o[x][y][]=1&o[x][y][]=2"

Для обратной совместимости с версией jQuery 1.3 и ниже во втором аргументе функции

jQuery.param
можно передать значение true или установить параметр
traditional
в значение true. Это предотвратит использование расширенных возможностей сериализации свойств, значениями которых являются массивы или объекты.

Иногда бывает необходимо передать в теле POST-запроса объект

Document
(или какой-то другой объект, который не должен преобразовываться автоматически). В этом случае можно установить в параметре
contentType
тип данных и в параметре
processData
значение false и тем самым предотвратить передачу объекта с данными функции
jQuery.param.

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

Кодекс Охотника. Книга XII

Винокуров Юрий
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XII

Камень. Книга пятая

Минин Станислав
5. Камень
Фантастика:
боевая фантастика
6.43
рейтинг книги
Камень. Книга пятая

Адепт. Том 1. Обучение

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
9.27
рейтинг книги
Адепт. Том 1. Обучение

#Бояръ-Аниме. Газлайтер. Том 24

Володин Григорий Григорьевич
24. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 24

Прапорщик. Назад в СССР. Книга 7

Гаусс Максим
7. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 7

Андер Арес

Грехов Тимофей
1. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Андер Арес

Сержант. Назад в СССР. Книга 4

Гаусс Максим
4. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сержант. Назад в СССР. Книга 4

Кодекс Крови. Книга IХ

Борзых М.
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ

Бастард Императора. Том 12

Орлов Андрей Юрьевич
12. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 12

Кодекс Охотника XXVIII

Винокуров Юрий
28. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Охотника XXVIII

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

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

Печать Пожирателя

Соломенный Илья
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Печать Пожирателя

Я еще барон. Книга III

Дрейк Сириус
3. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще барон. Книга III

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила