Використання jQuery для застосування Ajax

Значно простіше можна реалізувати відправлення асинхроних запитів від клієнта і отрмання відповіді від сервера з допомогою методів технології jQuery, які автоматизують керування процесами в Ajax.

 

Таблиця 6.1
Метод Опис
$.ajax({name:value, name:value, ... }) Виконує запит AJAX
$(selector).ajaxComplete(function(event,xhr,options)) Визначає функцію для запуску, коли запит AJAX завершується
$(selector).ajaxError(function(event,xhr,options,exc)) Визначає функцію для запуску, коли запит AJAX завершується з помилкою
$(selector).ajaxSend(function(event,xhr,options)) Визначає функцію для запуску, перш ніж запит AJAX відправляється
$.ajaxSetup({name:value, name:value, ... }) Встановлює значення за замовчуванням для наступних запитів AJAX
$(selector).ajaxStart(function()) Визначає функції при першому запиті AJAX
$(selector).ajaxStop(function()) Визначає функцію , коли всі AJAX запити завершились
$(selector).ajaxSuccess(function(event,xhr,options)) Визначає функцію якзо запит AJAX успішно завершений
$(selector).get(url,data,success(response,status,xhr), dataType) Завантаження даних з сервера за допомогою AJAX, HTTP GET-запиту
$(selector).getJSON(url,data,success(data,status,xhr)) Завантаження JSON-кодованих даних від сервера, використовуючи HTTP GET-запит
$(selector).getScript(url,success(response,status)) Завантаження (і виконання) JavaScript з сервера за допомогою AJAX, HTTP GET-запиту
$(selector).load(url,data,callback) Завантаження HTML даних з сервера і розміщення їх у вибраний елемент
$.param(object,trad) Створює подання масиву або об'єкта (може бути використана в якості URL рядок запиту для запитів AJAX)
$(selector).post(url,data,success(response,status,xhr), dataType) Завантаження даних з сервера, використовуючи HTTP POST AJAX запит
$(selector).serialize() Кодування набору елементів форми у вигляді рядка для пересилання
$(selector).serializeArray() Кодування набору елементів форми у вигляді масиву пар: назва і значення

 

У таблиці використано такі позначення :

· url – адреса сервера, тип (формат) даних, дані та назва функції, що прийме на опрацювання дані;

· success(response,status,xhr)функція для виконання після успішного завершення запиту;

· responseдані відповіді;

· status- статус запиту ("success", "notmodified", "error", "timeout", або "parsererror");

· xhr – містить об’єкт XMLHttpRequest;

· dataType – це тип даних (xml, html, script, json,text, _default) з сервера (необов’язковий параметр).

Наведемо приклад виклику основного методу $.ajax(), з наступними параметрами:

$.ajax({

url: url, data: data, success: callback, dataType: 'json'});

Аналогічні функції виконують методи

· $(selector).get(),

· $(selector).getJSON(),

· $(selector).post().

Наступний приклад надсилає запит, отримує відповідь з файлом та заносить окремі значення ключових слів у відповідні елементи сторінки. Реалізовано це ієрархією 4-х функцій: функція дії на завантажену сторінку (функція дії на подію (функція дії на опрацювання XML – файлу (функція дії на знаходження та знанесення значень відповідних ключів) ) ) ).

$(document).ready(function(){ // після завантаження

$('#example').click(function(){ // ф-я для події id = example

$.post('ajax/example.xml', {}, function(xml){ / дані з файлу

$('#example').html('');

$(xml).find('note').each(function(){ // заповнення

$('#example').append('To:' + $(this).find('to').text() + '<br/>')

.append('From: ' + $(this).find('from').text() + '<br/>')

.append('<b>' + $(this).find('heading').text() + '</b><br/>')

.append( $(this).find('body').text() + '<br/>');

});

}, 'xml'); // тип даних

})

});

Тут використовуються раніше наведені методи доступу до XML тексту та знаходження значень та доповнення елементів сторінки:

· $('#example').html('')- Зміна змісту елемента (inner) HTML

· $(xml).find('note').each(function(){ } – пошук ідентифікатора і для кожного виконати функцію

· $(this).find('to').text() – пошук ключа і занесення значення у text

· $('#example').append() - додавання змісту до елемента (inner) HTML

Файл example.xml має вигляд:

<?xml version="1.0" encoding="UTF-8"?>

<note>

<to>Peter</to>

<from>Nick</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>

Подібним чином наступний приклад надсилає запит, отримує відповідь з JSON текстом у файлі та заносить окремі значення ключових слів у відповідні елементи сторінки. Тут є тльки три функції, оскільки не потрібно шукати ключові слова у JSON – файлі (на відміну від XML-файлу), а заносити дані згідно назви змінних, які відповідають назвам ключів у вхідному файлі.

$(document).ready(function(){ // після завантаження

$('#example-4').click(function(){//функція для події id = example-4

$.getJSON('ajax/example.json', {}, function(json){// завантаження JSON данных из файла example.json

$('#example-4').html(''); // заповнюємо DOM елемент даними JSON

$('#example-4').append('To: ' + json.note.to + '<br/>')

.append('From: ' + json.note.from + '<br/>')

.append('<b>' + json.note.heading + '</b><br/>')

.append( json.note.body + '<br/>');

});

})

});

Сам файл example.json має вигляд подібно до асоціативного масиву в мовах JavaScript чи PHP:

{

note:{

to:'Peter',

from:'Nick',

heading:'Reminder',

body:'Don\'t forget to bring me my book!'

}

}