Общее представление об AJAX. Часть 1

В 1990-е годы компания Microsoft внедрила новый объект XMLHttpRequest типа ActiveX в свой браузер Internet Explorer версии 5.0. Этот объект был способен посылать запросы HTTP на сервер и оценивать данные, возвращаемые обратно. Это было сделано по просьбе разработчиков, работавших тогда над последней версией Outlook.

Несколько лет спустя данный объект открыли для себя разработчики проекта Mozilla, и тогда они решили создать свой вариант объекта XMLHttpRequest. Разумеется, этот объект был собственным для JavaScript, поскольку ActiveX не является межплатформенной технологией.

В связи с тем, что объект XMLHttpRequest стал широко применятся в Web-приложениях, в феврале 2005 года появилась статья “Ajax: новый подход к Web-приложениям”, написанная Джесси Гарретом. В этой статье Гаррет ввел термин AJAX, означающий Asinchronous JavaScript + XML.

С технической точки зрения AJAX — это не более чем применение объекта XMLHttpRequest для отправки запросов HTTP на сервер, который должен находиться в том же домене по соображениям безопасности, а также применение JavaScript для оценки и отображения данных на стороне клиента.

Инициализация приложения AJAX

Основу всех приложений AJAX составляет упоминавшийся выше объект XMLHttpRequest. Во всех браузерах, допускающих AJAX, реализована собственная поддержка данного объекта, но в Internet Explorer для этого требуется объект ActiveX. Впрочем, из этого правила имеется одно исключение: в версии Internet Explorer 7 также внедрена собственная поддержка XMLHttpRequest. Для создания такого объекта лучше всего использовать конструкцию try…catch и реализовать сначала собственный объект, чтобы правильно настроить браузер MS IE 7, несмотря на то, что он по-прежнему поддерживает ActiveX, а затем реализовать объект типа ActiveX следующим образом:

if (window.XMLHttpRequest) {
  // реализовать собственный объект
} else if (window.ActiveXObject) {
  // реализовать объект ActiveX
}

Что касается объекта ActiveX, то для его реализации имеется несколько способов. Дело в том, что компания Microsoft поставляет различные версии своей библиотеки XML, в недрах которой скрыт данный объект. Самый надежный способ состоит в том, чтобы проверить все версии. Но в приведенном ниже фрагменте кода проверяются лишь самые основные версии. Этот код работает в браузере Internet Explorer 5 и последующих его версиях, а также во всех остальных типах браузеров, поддерживающих AJAX.

function getXMLHttp() {
  var XMLHttp = null;
  if (window.XMLHttpRequest) {
    try {
      XMLHttp = new XMLHttpRequest();
    } catch (e) { }
  } else if (window.ActiveXObject) {
    try {
      XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) { }
    }
  }
  return XMLHttp;
}

Ссылки по теме:

Оставьте свой отзыв