달력

82019  이전 다음

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

ajax 원리

JavaScript/Ajax 2013.07.29 13:25

안녕하세요.

메일 많이 기다리셨죠.

저도 이렇게 메일 쓰게 만들었던 느린 인터넷이 당황스러웠습니다.


한꺼번에 보내드릴 수도 있는데, 

5번 연재로 메일 보내드릴 생각입니다.


첫번째는 ajax원리입니다.


http://www.okjsp.net/seq/69451


function getXMLHttpRequest() {


  var xmlreq = false;


  if (window.XMLHttpRequest) {

    // Create XMLHttpRequest object in non-Microsoft browsers

    xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {

    // Create XMLHttpRequest via MS ActiveX

    try {

      // Try to create XMLHttpRequest in later versions

      // of Internet Explorer

      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e1) {

      // Failed to create required ActiveXObject

      try {

        // Try version supported by older versions

        // of Internet Explorer

        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e2) {

        // Unable to create an XMLHttpRequest with ActiveX

      }

    }

  }


  return xmlreq;

}

function processAjax(url, params, callback) {

var req = getXMLHttpRequest();

req.onreadystatechange = function() {

if (req.readyState == 4) {

if(req.status == 200) {

eval(callback+"(req)");

}

}

}

url = url + params + "&t=" + new Date().getTime();

req.open("GET", url, true);

req.send("");


}

Ajax는 Microsoft에서 시작되었습니다.

iframe보다 진화된 형태로 ActiveXObject 객체로 시작했는데, 이것을 모질라 쪽에서 보고,

XMLHttpRequest 객체로 카피해서 사용한 것이죠.

아시다시피 MS쪽의 버전 하위 호환성은 보장하지 않기 때문에 프로그램으로 처리해야 할 경우의 수가 많습니다.

위 코드만 이해하시면 ajax의 기본 원리는 감(感) 잡으신 것입니다.

다음은 jQuery.ajax 보내드리겠습니다.

다음 주까지입니다.


감사합니다.

ps. 급하신 분은 https://github.com/kenu/gallery/tree/master/WebContent 를 참고하세요.

zip 버튼 클릭하시면 다운로드 가능합니다.

Posted by 케누 kenu허광남