Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / web / example1 / Введение в PHP.doc
Скачиваний:
101
Добавлен:
18.05.2015
Размер:
3 Mб
Скачать

Модель ajax: между загруженной в браузер страницей и сервером появляется прослойка - уровень ajax, который обеспечивает следующую последовательность выполнения приложения.

-Пользователь загружает на web-страницу и генерирует событие.

-Java скрипт определяет, какая информация необходима для обновления страницы и передает ее уровню AJAX.

-AJAX, используя браузер, отправляет соответствующий запрос на сервер.

-Сервер возвращает уровню AJAX только ту часть документа, на которую пришел запрос или только данные в формате XML.

-Уровень AJAX вызывает скрипт на языке JavaScript, который вносит изменения на страницу без полной перезагрузки страницы.

Таким образом сервер возвращает браузеру не готовый HTML-код страницы, а только данные, необходимые для обновления документа с использованием JavaScript и методов DOM. В основу технологии AJAX положены:

  • использование модели DOM для отображения и обновления содержимого.

  • обмен и обработка данных в виде XML

  • использование JavaScript.

  • асинхронные запросы к серверу через интерфейс XMLHttpRequest.

Класс xmlHttpRequest

В реализации модели AJAX главную роль играет объект класса XMLHttpRequest. Класс XMLHttpRequest впервые был реализован компанией Microsoft для браузера Internet Explorer 5.0 в виде объекта ActiveX, доступного через JScript. Программисты проекта Mozilla разработали совместимую версию класса XMLHttpRequest. В дальнейшем эта возможность была реализована в браузере Opera и других. В настоящее время XMLHttpRequest входит в набор API XMLHTTP, используемый в JavaScript, для пересылки данных по HTTP-протоколу между браузером и веб-сервером. Возможна пересылка данных XML, данных формы или текстовых данных.

Объект-запрос XMLHttpRequest выполняет формирование и передачу запроса серверу. Запрос надо создать, открыть методом open(), и передать серверу методом send().

if (window.XMLHttpRequest) {

req = new XMLHttpRequest();

req.onreadystatechange = processReqChange;

req.open("GET", url, true);

req.send(null); }

В методе open() третий параметр async =true – флаг асинхронного выполнения. При асинхронном выполнении метод send() вернет управление сценарию и пользователь сможет продолжить работу с документом, пока запрос будет путешествовать к серверу и обратно. При получении ответа от сервера, управление должно перейти к функции обратного вызова, задаваемую свойством onreadystatechange класса XMLHttpRequest.

Методы класса xmlHttpRequest

abort() - отменяет текущий запрос;

getAllResponseHeaders() - возвращает список всех HTTP-заголовков в виде строки;

getResponseHeader(headerName) - возвращает значение указанного заголовка; open(method, URL, async, userName, password) - определяет метод, URL имя и пароль запроса; параметр async определяет работу в асинхронном режиме;

send(content) - отправляет запрос на сервер;

setRequestHeader(label, value) - добавляет HTTP-заголовок к запросу;

Свойства класса xmlHttpRequest

onreadystatechange - обработчик события, происходящего при смене состояния объекта.

readyState-возвращает состояние объекта (0 — не инициализирован, 1 — открыт, 2 — отправка данных, 3 — получение данных, 4 — данные загружены).

responseText -текст ответа на запрос, вращаемый клиенту;

responseXML - ответ на запрос в виде XML, который может быть распарсен через DOM.

status- возвращает HTTP-статус в виде числа (404 — «Not Found», 200 — «OK» и т. д.). statusText-возвращает статус в виде строки («Not Found», «OK» и т. д.)

Соседние файлы в папке example1