googleAdsense_widever


브라우저 별 XMLHttpRequest Web Develop


모질라, 파이어폭스, 사파리, 크롬, IE7, 오페라

var xhr = new XMLHttpRequest;

 

IE6

var xhr = new ActiveXObject("Microsoft.XMLHTTP");

 

그 외 버젼

var xhr = new ActiveXObject("Msxml2.XMLHTTP.4.0");



XMLHttpRequest(XHR) 객체는 Internet Explore5에서 ActiveX 컴포넌트 형식으로 가장 먼저 제공되었기때문에, 모질라와 사파리 웹브라우저에서 이 객체를 도입하기전까지 사실 많은 개발자들이 XMLHttpRequest 객체의 사용을 꺼려했다.

XHR은 W3C 표준이 아니기때문에 브라우저마다 작동방식에 있어서 다소나마 차이가 존재했었지만 현재 대부분의 브라우저들은 XHR 기능을 서로 비슷하게 구현하고 있다.
현존하는 브라우저들 중에서 XHR을 지원하지 않는 브라우저는 거의 없을정도로 대부분의 브라우저들은 현재 XHR 을 지원하고 있다.

ajax 구현의 시작은 XHR 객체의 생성에서 시작한다.
XHR 은 W3C 의 표준이 아니므로,
인터넷익스플로어에서는 ActiveX Component 형식으로 구현되었고, 그 밖에 다른 브라우저들(FireFox, Safari, Opera)은 native javascript 객체로 구현되었다.
이런 차이점을 고려해서 XHR 객체를 얻어오는 자바스크립트 코드를 다음과 같이 작성할 수 있다.

var xmlHttp;

function createXMLHttpRequest() {
     if(window.ActiveXObject) {
          xhr = new ActiveXObject("Microsoft.XMLHTTP");
     } else if(window.XMLHttpRequest) {
          xhr = new XMLHttpRequest();
     }
     return xhr;
}


window.ActiveXObject 는 ActiveXObject를 지원하는 브라우저라면 오브젝트를 리턴하고 그렇지 않다면 null를 리턴하게 된다.
따라서 오브젝트가 존재하면 if 구문은 true 를 반환하고 xhr 값은 ActiveXObject 객체가 할당되어진다. if 구문이 false 를 반환하면 else 구분으로 이동하여 xhr 값은 navtive javascript 객체가 할당될 것이다.
따라서 위 코드를 이용하면 브라우저가 다르더라도 하나의 메소드로 XHR 객체를 생성할 수 있다.



덧글

댓글 입력 영역


공지

어서오십시오.
트위터 : @FCliver
기저심리학 : 네이버카페
카카오톡 : FCliver
페이스북 : Fredric Cliver

통계 위젯 (화이트)

01
50
288861

접속자 위치