Добавляем...


Создание и отправка запросов
Запросы XMLHTTP могут быть или синхронными или асинхронными, что опреде-ляется необязательным третьим параметром в open(). Метод send() синхронного запроса завершится только после завершения запросе, т. е. обработка запроса проис-ходит в режиме "вашего ожидания". Метод send() асинхронного запроса завершается немедленно, и загрузка происходит в фоновом режиме. Чтобы выяснить, завершилась ли обработка асинхронного запроса, следует проверить значение readyState. Преимущество асинхронного запроса заключается в том, что выполнение сценария может быть продолжено, пока ожидается ответ на запрос - например, можно загрузить несколько запросов параллельно.
Чтобы создать объект XMLHTTP в браузере на базе Mozilla, используется конструктор XMLHttpRequest:

var xmlhttp = new XMLHttpRequest();

В IE создается новый MSXML-объект XHMLHTTP ActiveX:

var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

Для созданного объекта XMLHTTP типичной последовательностью его использования при синхронных запросах является.
  1. Параметризация запроса с помощью open().
  2. Установка с помощью setRequestHeader() пользовательских заголовков, которые требуется отправить.
  3. Отправка запроса с помощью send().
  4. Чтение ответа из связанных с ответом свойств.
Следующий пример иллюстрирует применение этого вида запроса:

if (document.all)
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
else
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "http://www.example.com/somefile.html", false);
xmlhttp.send("");
alert("Код ответа: " + xmlhttp.status)

Последовательность шагов для асинхронного запроса аналогична.
  1. Параметризация запроса с помощью open().
  2. Установка с помощью setRequestHeader() пользовательских заголовков, которые требуется отправить.
  3. Установка для свойства onreadystatechange функции, которая будет вызвана после завершения обработки запроса.
  4. Отправка запроса с помощью send().
Следующий пример иллюстрирует работу с асинхронным запросом:

if (document.all)
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
else
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", window.location);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4)
alert("Текст этой страницы: " + xmlhttp.responseText);
};
xmlhttp.setRequestHeader("Cookie", "FakeValue=yes");
xmlhttp.send("");

При работе с асинхронными запросами нет необходимости использовать обработчик onreadystatechange. Вместо этого можно периодически проверять значение readyState, чтобы выяснить состояние процесса обработки запроса.
назад:
далее:


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика