티스토리 뷰


readyState 프로퍼티는 Ajax 요청의 현재 상태를 나타냅니다.
프로퍼티의 값은 숫자 입니다.
Ajax 기술의 핵심 객체(사실 이 객체만 생각해도 무방) 인 xmlhttp 가 가지는 property 인데 이 property 는 상태를 나타내는 프로퍼티이고 간단히 숫자로 현재 xmlhttp 객체의 상태를 나타냅니다.

  • 0 : 처음으로 xmlhttp가 생성된 상태를 말합니다.
  • 1 : 열기. open 메소드가 호출되었으나 send 메소드는 호출되지 않았음.
  • 2 : 송신완료. send 메소드가 호출되었음. 요청이 시작되었음.
  • 3 : 수신 중, 서버가 응답을 보내는 중임.
  • 4 : 수신완료. 서버가 응답을 다 보내고 작업을 완료했음

    var xmlhttp = getXMLHTTP () ; --> readyState = 0
    xmlhttp.open("get","test.html",true) ; --> readyState = 1
    xmlhttp.onreadystate = handlingFunction ;
    xmlhttp.send(null) ;--> readyState = 2

    XMLHTTP 의 상태가 변경되는 것에 따라서 핸들링을 다르게 할 수 있는데 흔히 ajax 에서 가장 기본적인 구성은 readyState 가 4인 경우, 즉 XMLHTTP 의 Request 가 Complete 되었을 경우 Function 을 실행하는 것이 기본입니다.

    *예제
    (1) var xmlHttp = createAjax();   //ajax 개체 생성
    (2) xmlHttp.onreadystatechange = function;   //readyState의 속성이 바뀔경우 function()을 호출한다.
    (3) xmlHttp.open("get", "test_xml.xml");   // 첫번째인수로 GET, POST, OPTIONS, HEAD, PUT, DELETE, TRACE, CONNECT 방식을 지정할수 있지만, 보통 GET, POST를 쓴다. 일반적으로 서버에 전송할 경우 POST, 서버에 자료를 요청할 경우는 GET 방식을 사용한다.
    (4) xmlHttp.send("");   //요청실행

    readyState 속성이 바뀔경우 onreadystatechange=function 에 의해서 function() 함수가 실행된다.
    즉 readyState == 4 가 되어야 응답을 받은 것이 된다.

    또 한가지 속성 status, HTTP 응답이 정상인지를 표시한다.
    200, 403, 404, 500값을 가진다.

    200 - 서버가 정상으로 존재하고, 문제없이 응답을 받았을 경우,
    403 - 접근을 거부당한 경우,
    404 - 파일이 없을경우( 위 예에서는 xml.xml 파일이 존재하지 않을경우 ),
    500 - 서버에 오류가 발생했을 경우,

    즉, xmlHttp.readyState == 4 이면서 xmlHttp.status == 200인 경우에 정상으로 실행된것이다.

    function function()
    {
        //직접 찍어볼 경우  속성값이 변하는 것을 알수있다.
        alert( xmlHttp.readyState + ", " + xmlHttp.status );
        if( xmlHttp.readyState == 4 && xmlHttp.status  == 200 )
        {
           //정상적으로 응답을 받은경우
           //실행 코드 작성,
        }
    }
  • 댓글
    공지사항
    최근에 올라온 글
    최근에 달린 댓글
    Total
    Today
    Yesterday
    링크