Читаем Основы программирования на JavaScript полностью

Чтобы создавать Web-приложения AJAX, необходимо хорошо знать объект JavaScript, называемый XMLHttpRequest.

Объект XMLHttpRequest является ключевым понятием технологии AJAX. Он был доступен с момента появления в июле 2000 браузера Internet Explorer 5.5, но не был полностью понят до 2005 года, когда начались разговоры об AJAX и Web 2.0.

Ниже представлены некоторые методы и свойства этого объекта, с которыми необходимо быть знакомым.

Различные браузеры используют для создания объекта XMLHttpRequest различные методы.

Internet Explorer использует ActiveXObject.

Другие браузеры используют встроенный в JavaScript объект, называемый XMLHttpRequest.

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


var XMLHttp=null if (window.XMLHttpRequest) { XMLHttp=new XMLHttpRequest() } else if (window.ActiveXObject) { XMLHttp=new ActiveXObject("Microsoft.XMLHTTP") }


Сначала создается переменная XMLHttp для использования в качестве объекта XMLHttpRequest. Ее значение задается как null.

Затем проверяется, доступен ли объект window.XMLHttpRequest. Этот объект доступен в более новых версиях браузеров, таких как Firefox, Mozilla, и Opera.

Если объект доступен, то он используется для создания нового объекта.


XMLHttp=new XMLHttpRequest().


Если он не доступен, то проверяется, доступен ли объект window.ActiveXObject. Этот объект будет доступен в браузере Internet Explorer версии 5.5 и выше.

Если этот объект доступен, то он используется для создания нового объекта:


XMLHttp=new ActiveXObject().


Некоторые программисты предпочтут использовать самую новую и быструю версию объекта XMLHttpRequest.

Следующий пример пытается использовать самую последнюю версию объекта "Msxml2.XMLHTTP" компании Microsoft, доступную в Internet Explorer 6, прежде чем обратиться к объекту "Microsoft.XMLHTTP", доступному в Internet Explorer 5.5 и выше.


var XMLHttp=null try { XMLHttp=new ActiveXObject("Msxml2.XMLHTTP") } catch(e) { try { XMLHttp=new ActiveXObject("Microsoft.XMLHTTP") } } if (XMLHttp==null) { XMLHttp=new XMLHttpRequest() }


Сначала создается переменная XMLHttp для использования в качестве объекта XMLHttpRequest. Ее значение задается как null.

Затем делается попытка создания объекта способом компании Microsoft, доступным в Internet Explorer 6 и более поздних версиях:


XMLHttp=new ActiveXObject("Msxml2.XMLHTTP")


Если это порождает ошибку, то используется старый способ (Internet Explorer 5.5):


XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")


Если XMLHttp по прежнему имеет значение null, то делается попытка создания объекта "стандартным" способом:


XMLHttp=new XMLHttpRequest()


Метод open()

Метод open() создает запрос для Web-сервера.

Метод send()

Метод send() посылает запрос серверу.

Метод abort()

Метод abort() отменяет текущий запрос к серверу.

Свойство readyState определяет текущее состояние объекта XMLHttpRequest.

В таблице показаны возможные значения свойства readyState:

СостояниеОписание
0Запрос не инициализирован
1Запрос создан
2Запрос послан
3Запрос обрабатывается
4Запрос завершен

readyState=0 после создания объекта XMLHttpRequest, но до вызова метода open().

readyState=1 после вызова метода open(), но до вызова метода send().

readyState=2 после вызова метода send().

readyState=3 после того, как браузер соединится с сервером, но до завершения сервером ответа.

readyState=4 после завершения запроса и полного получения всех данных ответа с сервера.

Различные браузеры используют свойство состояния готовности по-разному. Не стоит рассчитывать, что все браузеры будут сообщать обо всех состояниях. Некоторые не сообщают о состоянии 0 и 1.

Для приложений AJAX представляет интерес фактически только состояние 4. Те есть, когда запрос завершен, и можно использовать полученные данные.

Свойство responseText содержит присланный сервером текст.

Дополнение. Учебное руководство по XHTML

Язык XHTML является более строгой и четкой версией языка разметки HTML.

Перейти на страницу:

Похожие книги

Старший брат следит за тобой. Как защитить себя в цифровом мире
Старший брат следит за тобой. Как защитить себя в цифровом мире

В эпоху тотальной цифровизации сложно представить свою жизнь без интернета и умных устройств. Но даже люди, осторожно ведущие себя в реальном мире, часто недостаточно внимательно относятся к своей цифровой безопасности. Между тем с последствиями такой беспечности можно столкнуться в любой момент: злоумышленник может перехватить управление автомобилем, а телевизор – записывать разговоры зрителей, с помощью игрушек преступники могут похищать детей, а к видеокамерам можно подключиться и шпионить за владельцами. Существуют и государственные проекты наподобие «Умного города», подразумевающие повсеместное внедрение видеокамер и технологий распознавания лиц.Все это не значит, что нужно стремиться к цифровому затворничеству и панически избегать гаджетов, но необходимо изучить и соблюдать элементарные правила безопасности. Михаил Райтман в своей книге рассказывает, как максимально снизить вероятность утечки персональных данных, осложнив задачу потенциальным злоумышленникам.

Михаил Анатольевич Райтман

Зарубежная компьютерная, околокомпьютерная литература
Большие данные. Революция, которая изменит то, как мы живем, работаем и мыслим
Большие данные. Революция, которая изменит то, как мы живем, работаем и мыслим

С появлением новой науки открылась удивительная возможность с точностью предсказывать, что произойдет в будущем в самых разных областях жизни. Большие данные — это наша растущая способность обрабатывать огромные массивы информации, мгновенно их анализировать и получать порой совершенно неожиданные выводы. По какому цвету покраски можно судить, что подержанный автомобиль находится в отличном состоянии? Как чиновники Нью-Йорка определяют наиболее опасные люки, прежде чем они взорвутся? И как с помощью поисковой системы Google удалось предсказать распространение вспышки гриппа H1N1? Ключ к ответу на эти и многие другие вопросы лежит в больших данных, которые в ближайшие годы в корне изменят наше представление о бизнесе, здоровье, политике, образовании и инновациях.

Кеннет Кукьер , Виктор Майер-Шенбергер

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT