Створює JSON запит за допомогою ін'єкції тега script та обробляє колбеки за вас.
Навчальний посібник/Демо
Реалізує
Синтаксис
new Request.JSONP(options);
Аргументи
- options - (object) об'єкт з ключовими параметрами опцій
Опції
- url - (url) URL для отримання JSON даних
- callbackKey - (string: за замовчуванням callback) ключ у URL, який сервер використовує для обгортання JSON результатів. Наприклад, якщо ви використовували callbackKey: 'callback', то сервер очікує щось на кшталт http://..../?q=search+term&callback=myFunction; Це має бути визначено правильно.
- data - (string: за замовчуванням '') Типові дані для Request-JSONP:send, використовуються, коли дані не надано.
- link - (string: за замовчуванням 'ignore') Може бути 'ignore', 'cancel' та 'chain'.
- 'ignore' - Будь-які виклики start під час виконання запиту будуть проігноровані.
- 'cancel' - Будь-які виклики start під час виконання запиту матимуть пріоритет над поточним запущеним запитом. Новий запит почнеться негайно, скасовуючи той, що зараз виконується.
- 'chain' - Будь-які виклики start під час виконання запиту будуть додані до черги і виконаються як тільки поточний запит завершиться, один за одним.
- timeout - (number: за замовчуванням 0) У поєднанні з подією onTimeout, визначає кількість мілісекунд перед тим, як з'єднання вважатиме тайм-аутом. (Рекомендується не використовувати timeout з великими файлами і лише тоді, коли ви знаєте, що очікувати.)
- injectScript - (mixed: за замовчуванням document head) куди ін'єктувати script-елементи, використовувані для викликів
- log - (boolean: за замовчуванням false) якщо true, надсилає повідомлення логування з
console.log як типовий onRequest та події onError.
Події
- onRequest - (function, опціонально) спрацьовує, коли script-тег ін'єктовано; передасться запитуваний URL та script-елемент.
- onComplete - (function, опціонально) спрацьовує, коли дані повернулися; передадуться дані та екземпляр Request.JSONP, що їх запитував.
- onCancel - (function, опціонально) спрацьовує, коли запит скасовано.
- onTimeout - (function, опціонально) спрацьовує, коли тайм-аут перевищено.
Приклад
var myJSONP = new Request.JSONP({
url: 'http://www.flickr.com/services/feeds/photos_public.gne?format=json',
callbackKey: 'jsoncallback',
data: {
partTag: 'mtvo',
iod: 'hlPrice',
viewType: 'json',
results: '100',
query: 'ipod'
},
onRequest: function(url){
// a script tag is created with a src attribute equal to url
},
onComplete: function(data){
// the request was completed.
}
}).send();
Вищезазначений приклад згенерує такий URL:
http://www.flickr.com/services/feeds/photos_public.gne?format=json&jsoncallback=Request.JSONP.request_map.request_0
Він вбудує script-тег (у head документа) з цим URL і, коли він завантажиться, виконає колбек "myFunction", визначений у ньому.
Виконує JSON запит.
Синтаксис
myJSONP.send([options]);
Аргументи
- options - (object; опціонально) ключові параметри опцій, що конфігурують запит. Може бути тим самим, що й (або підмножиною) опцій класу, елементом (наприклад, формою), чиї дочірні input-и будуть перетворені на рядок запиту, або рядком запиту.
Повертає
Скасовує поточний запущений запит, якщо такий є.
Синтаксис
myJSONP.cancel();
Повертає
Повертає true, якщо запит зараз виконується
Синтаксис:
myRequest.isRunning()
Повертає:
- (boolean) True, якщо запит виконується
Приклад:
if (myJSONP.isRunning()) // It runs!