Общее представление об 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 следующим образом:
// реализовать собственный объект
} else if (window.ActiveXObject) {
// реализовать объект ActiveX
}
Что касается объекта ActiveX, то для его реализации имеется несколько способов. Дело в том, что компания Microsoft поставляет различные версии своей библиотеки XML, в недрах которой скрыт данный объект. Самый надежный способ состоит в том, чтобы проверить все версии. Но в приведенном ниже фрагменте кода проверяются лишь самые основные версии. Этот код работает в браузере Internet Explorer 5 и последующих его версиях, а также во всех остальных типах браузеров, поддерживающих AJAX.
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;
}
Ссылки по теме:
Оставьте свой отзыв