Лабораторная работа: Создание приложений на AJAX
Кафедра: АСОИиУ
Лабораторная работа
На тему: Создание приложений на AJAX
Душанбе, 2009
Обзор Ajax
Использование Ajax начинается с JavaScript-объекта, называемого XMLHttpRequest. Как и предполагает имя, он позволяет в клиентской части вашего кода выполнять HTTP-запросы и анализирует ответ XML-сервера. Первый шаг в изучении Ajax - создание данных объекта XMLHttpRequest. Метод протокола HTTP при использовании для запроса (GET или POST) и пути затем устанавливаются в объекте XMLHttpRequest.
Теперь вспомните, почему "а" в слове Ajax обозначает "асинхронный"? Когда вы посылаете HTTP-запрос, вы не хотите, чтобы браузер повис, ожидая ответа сервера. Вместо этого вы хотите также реагировать на действие пользователя на странице и работать с ответом сервера, когда тот в конечном итоге придет. Чтобы выполнить это, вам нужно зарегистрировать функцию обратного вызова с помощью XMLHttpRequest и послать асинхронно запрос XMLHttpRequest. Контроль останется за браузером, а функция обратного вызова будет вызвана, когда придет ответ сервера.
На Web-сервере запрос придет так же, как и любой другой HttpServletRequest. После анализа параметров запроса, сервлет выполнит все необходимые действия для приложения, сериализует его запрос в формате XML и вписывает его в HttpServletResponse.
Возвращаясь к клиенту, функция обратного вызова, зарегистрированная в XMLHttpRequest, теперь выполняется для того, чтобы обработать XML-документ, возвращаемый сервером. Наконец, пользовательский интерфейс обновляется в соответствии с данными сервера, используя JavaScript-код для преобразования страницы. Рисунок 1 - диаграмма последовательности изучения Ajax.
Рисунок 1. Обзор Ajax
Я начну с самого начала: создание XMLHttpRequest и отправка его из браузера. К сожалению, метод создания XMLHttpRequest отличается от браузера к браузеру. Функция в JavaScript в листинге 2 сглаживает эти трудности разных браузеров, определяя корректный подход для данного браузера и возвращая XMLHttpRequest готовым к использованию. Лучше всего думать об этом как о коде-шаблоне: простое копирование его в вашу библиотеку JavaScript и его использование, когда вам понадобится XMLHttpRequest.
Листинг 2. Создание XMLHttpRequest для разных браузеров
/*
* Возвращает новый XMLHttpRequest объект или false, если браузер его не поддерживает
*/
function newXMLHttpRequest() {
var xmlreq = false;
if (window. XMLHttpRequest) {
// Создадим XMLHttpRequest объект для не-Microsoft браузеров
xmlreq = new XMLHttpRequest();
} else if (window. ActiveXObject) {
// Создадим XMLHttpRequest с помощью MS ActiveX
try {
// Попробуем создать XMLHttpRequest для поздних версий
// Internet Explorer
xmlreq = new ActiveXObject("Msxml2. XMLHTTP");
} catch (e1) {
// Не удалось создать требуемый ActiveXObject
try {
--> ЧИТАТЬ ПОЛНОСТЬЮ <--