본문 바로가기

개발관련/Ajax

Ajax정리 1. XMLHttpRequest 객체 생성 함수

다음 사항을 아는 분이면 아래 글을 읽을 때 아주 이해가 잘 될 것이라고 생각이 됩니다.
1. Ajax가 먼지 알아야함.
2. 자바스크립트 기본은 알아야함.
3. if문과 try~catch문을 알아야함.
4. 생성자가 뭔지 알아야함.

XMLHttpRequest객체 - 클라이언트와 서버간의 통신을 담당한다.
Ajax에서 가장중요한 것이라고 해도 과언이 아닐듯!

XMLHttpRequest 객체의 생성방법이 익스플로러와 타익스플로러에서 서로 다르다.
심지어 익스플로러는 5.0이전버전과 이후버전의 생성방법이 틀리다.
그러므로 공용함수를 만들어서 브라우저문제를 해결하자!

//XMLHttpRequest 공용함수

function newXMLHttpRequest(){
  var reqHttp;
  if(window.ActiveXObject) { //익스플로러일 때
    try{
      reqHttp = new ActiveXObject("Msxml2.XMLHTTP");  //5.0이후
    }catch(e){
      try{
        reqHttp = new ActiveObject("Microsoft.XMLHTTP") //5.0
      } catch(e1){
        reqHttp = null;
      }
    }
  } else if (window.XMLHttpRequest) { //익스플로러 말구
    try{
      reqHttp = new XMLHttpRequest(); //
    }catch(e){
      reqHttp = null;
    }
  }
  if(reqHttp == null){ errorMessage(); }
  return reqHttp;
}

function errorMessage(){
  alert("지원 안되는 브라우저");
}
익스플로러에서는 XMLHttpRequest객체를 생성할 때 ActiveXObject로 생성하고
그 이외 브라우저에서는 XMLHttpRequest객체가 내장되어 있으므로
기본생성자 - new XMLHttpRequest(); - 로 생성가능하다.
둘다 없으면 Ajax를 사용할 수 없는 후진! 브라우저로 판명되는 것이다.

위의 함수를 사용하면
var myAjax = newXMLHttpRequest();
요런식으로 어느 브라우저에서든지 바로 XMLHttpRequest객체를 생성할 수 있다.

- 위의 정리는 가메출판사 / Ajax활용 / 이란 책을 보고 요약한것입니다. -

'개발관련 > Ajax' 카테고리의 다른 글

Ajax정리 2. XMLHttpRequest의 메서드와 프로퍼티  (2) 2008.09.16