![]() |
Статьи | Новости | Контакты | ||||
|
|||||||
|
|||||||
17.04.2007 |
![]() |
Совместимость программного кода веб-страницы с различными браузерами – одна из основных задач, стоящих перед разработчиком. Вы должны быть уверены, что AJAX-движок вашего сайта формирует структуру данных, передаваемых клиенту именно таким образом, которым браузер клиента ожидает их получить.
Несмотря на то что Microsoft и сообщество разработчиков открытого проекта Mozilla выбрали разные пути реализации объекта, формирующего запрос на получение XML-данных с веб-сервера, все-таки есть способ создать универсальный AJAX-код, корректно работающий в различных браузерах.
Итак, первое, что необходимо сделать при использовании элементов технологии AJAX на веб-странице, это проверить, какой вид объекта, реализующего формирование запроса, используется браузером клиента, а затем должным образом инициализировать этот объект. Напишем функцию, реализующую выполнение поставленной задачи.
if (window.XMLHttpRequest){
#nbsprequest = new XMLHttpRequest();
#nbsprequest.onreadystatechange=handleResponse;
#nbsprequest.open("GET",theURL,true);
#nbsprequest.send(null);
}
Если браузер поддерживает объект XMLHttpRequest, тогда:
1) условие if (window.XMLHttpRequest) возвращает значение true;
2) создается новый объект XMLHttpRequest;
3) в качестве слушателя-обработчика событий данного объекта используется стандартная функция Java Script – handleResponse();
4) вызываются методы open() и send() созданного объекта.
else if (window.ActiveXObject){
request=new ActiveXObject("Microsoft.XMLHTTP");
if (! request){
request=new ActiveXObject("Msxml2.XMLHTTP");
}
if(request){
request.onreadystatechange=handleResponse;
request.open(reqType,url,true);
request.send(null);
}
}
Этот фрагмент кода проверяет наличие объекта ActiveXObject, который свидетельствует об использовании браузера Internet Explorer. Сам же запрос может выполняться с использованием одного из двух ActiveX-компонентов — Microsoft.XMLHTTP и Msxml12.XMLHTTP.
Конечно, помимо этих основных разновидностей объекта, осуществляющего XML-запрос через HTTP, есть и другие. Однако в большинстве случаев приходится иметь дело именно с только приведенными тремя. Но в случае необходимости аналогичным образом можно добавить проверку и на остальные версии.
В готовом виде процедура проверки версии библиотеки XMLRequest выглядит следующим образом.
function httpRequest(reqType,url,asynch){
if(window.XMLHttpRequest){
request = new XMLHttpRequest( );
} else if (window.ActiveXObject){
request=new ActiveXObject("Msxml2.XMLHTTP");
if (! request){
request=new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(request){
initReq(reqType,url,asynch);
} else {
alert("Your browser does not permit the use of all "+
"of this application's features!");
}
}
function initReq(reqType,url,bool){
request.onreadystatechange=handleResponse;
request.open(reqType,url,bool);
request.send(null);
}
Скоро на сайте
-
Wordpress
Серия статей о плагинах к движку WordPrress -
AJAX
Проекты и продукты, ориентированные на AJAX -
Новые сервисы Google
Обзор новых сервисов Google
Copyright © 2003—2022 Все права защищены
При использовании материалов сайта ссылка на hostinfo.ru обязательна