2016년 10월 4일 화요일

[Ajax강의,jQuery강의,자바강의★탑크리에듀]ajax XMLHttpRequest의 개요(ajax 강좌)

XMLHttpRequest의 개요

MS(마이크로 소프트)는 Internet Explorer(IE)가 자바스크립트로부터 XML을 불러올 수 있도록 XMLHttpRequest를 설계.
XMLHttpRequest객체는 현재 대부분의 브라우저에 내장되어 있는 객체이다.
W3C 의 표준이 아니므로, IE에서는 ActiveX Component 형식으로 구현되었고, 다른 브라우저들(FireFox, Safari, Opera)은 native javascript 객체로 구현.
XMLHttpRequest는 실제로 자바스크립트에 대한 일반적인 HTTP 클라이언트 이기 때문에 GET과 POST HTTP 요청을 서버에 할 수 있다.
클라이언트와 서버간의 통신을 담당하는 객체.

XMLHttpRequest는 간단한 API와 몇 가지 메서드와 속성들을 제공한다. 그러나 브라우저간의 차이점이 존재하기 때문에 “Cross-Brower”(브라우저의 종류에 관계없이 동작) 부분을 생각할 필요가 있다.
내용의 변경 없이 새로운 컨텐츠를 불러올 수 있다.
JavaScript로 동기 방식의 호출을 할 수 있다.

XMLHttpRequest 객체 생성
Internet Explorer ActiveXObject
IE는 ActiveXObject를 사용해서 서버와 통신하며 2가지 객체가 있다
Msxml2.XMLHTTP
Microsoft.XMLHTTP
Msxml2.XMLHTTP는 IE 5.0 이후의 버전이고 Microsoft.XMLHTTP는 IE 5.0이전 버전이다.
가능한 두 종류를 보장해서 XMLHttpRequest를 정의할 필요가 있다. 왜냐하면 “Microsoft.XMLHTTP”를 사용하지 않는 다는 보장을 할 수 없기 때문이다.

if (window.ActiveXObject) { //IE
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
     return new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
     return null;
 }
    }
}

Internet Explorer ActiveXObject 이외

IE 이외 브라우저를 사용하여 애플리케이션을 실행하면 XMLHttpRequest 객체가 생성되지만, IE 브라우저로 애플리케이션을 실행하면 XMLHttpRequest 객체가 생성되지 않는다.
XMLHttpRequest 객체 생성 예
 
if (window.XMLHttpRequest) { //IE 이외(FireFox, Opera등)
    try {
        return new XMLHttpRequest()
    } catch(e) {
        return null;
    }
}

댓글 없음:

댓글 쓰기