AJAX загрузка
home

С помощью свойств и методов объекта XMLHttpRequest Вы можете совершать асинхронные запросы.



Этапы выполнения AJAX запросов

Создание объекта XMLHttpRequest

С помощью свойств и методов объекта XMLHttpRequest Вы можете совершать AJAX запросы. Для того, чтобы совершить запрос сначала необходимо создать экземпляр объекта XMLHttpRequest.

Синтаксис для создания экземпляра объекта XMLHttpRequest:

переменная=new XMLHttpRequest();

Обратите внимание: IE6 использует ActiveXObject вместо XMLHttpRequest, поэтому синтаксис для создания экземпляра объекта для него будет отличатся от приведенного выше.

Синтаксис для создания экземпляра XMLHttpRequest в IE6:

переменная=new ActiveXObject("Microsoft.XMLHTTP");

Если Вы хотите, чтобы Ваш код работал во всех браузерах используйте следующую конструкцию:

var xhttp;
/* Если объект XMLHttpRequest существует, значит мы имеем дело с современным браузером
Chrome, Firefox, Safari, Opera или IE7 и выше. */
if (window.XMLHttpRequest){
   xhttp=new XMLHttpRequest();
}
/* Если же объект XMLHttpRequest не существует значит мы имеем дело с IE6 и нам придется 
воспользоваться специальным синтаксисом */
else {
   xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

Свойства объекта XMLHttpRequest

Все свойства в таблице ниже будут подробно рассмотрены далее в этом учебнике.

Свойство Описание
onreadystatechange Функция, код которой будет исполнен при изменении состояния готовности сервера.
readyState Позволяет узнать состояние готовности сервера.
responseText Хранит ответ сервера как строку символов.
responseXML Хранит ответ сервера как XML файл.
status Хранит код ответа сервера.

Методы объекта XMLHttpRequest

Все методы в таблице ниже будут подробно рассмотрены далее в этом учебнике.

Метод Описание
open(тип_запроса,url,способ) Создает запрос.

тип_запроса устанавливает тип запроса (GET или POST).
url устанавливает путь к запрашиваемому файлу.
способ устанавливает способ выполнения запроса. При значении true запрос будет выполнен асинхронно, при false синхронно.
send('данные') Позволяет передать данные на сервер.
setRequestHeader(заголовок,значение) Позволяет добавить HTTP заголовок к запросу.

заголовок содержит имя заголовка
значение содержит значение заголовка

Сделайте сами

Обратите внимание: при выполнении этого и следующих упражнений рекомендуем Вам выключить отладчики (такие как Firebug), которые могут выдавать подсказки. В ходе выполнения заданий Вы сами должны находить и исправлять ошибки в учебных целях.

Задание 1 определите 3 экземпляра объекта XMLHttpRequest с правильными именами для того, чтобы код заработал. Точные их имена неизвестны, но известен список из 15 имен, среди которых имеются необходимые.

Пример

<script type='text/javascript'>
/* Определите экземпляры объектов здесь */
</script>

<ul>
<li>birch</li>
<li>cat</li>
<li>frog</li>
<li>sky</li>
<li>onion</li>
<li>pine</li>
<li>fox</li>
<li>sun</li>
<li>door</li>
<li>forest</li>
<li>creek</li>
<li>pond</li>
<li>rabbit</li>
<li>apple</li>
<li>moon</li>
</ul>