Login | Join | OpenID | RSS Feed
AJAX 요청이 완료되지 않았는데 페이지 이탈하는 경우
최광용 Lv. 14 llllllllll 
321 hit since 2007/12/07 13:31

AJAX 요청이 완료되지 않은 상태에서 페이지를 새로고침 하거나 다른 페이지로 이동을 하는 경우 변수가 defined되어 있지 않다는 javascript 에러 메시지가 나오게 된다.

예를 들어 다음과 같은 상황이다.

  1. xmlHttp = GetXmlHttpObject();
  2. xmlHttp.onreadystatechange = onComplete;
  3. xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
  4.  
  5. function onComplete()
    {
  6.       if (xmlHttp.readyState == 4)
  7.             { ... }
  8. }

위와 같은 코드에서 xmlHttp.readyState를 읽으려 할 때 다음과 같은 에러가 3번 연속적으로 발생한다.

  1. error: xmlHttp not defined.
  2. line xxx: ....

 

에러가 발생해도 페이지를 이탈하는 것이기때문에 별 문제가 없으나, 에러 라고 나오는 것 자체가 기분이 나쁘다.

다음과 같이 변수 타입을 체크하여 에러 메시지를 막을 수 있다.

  1. if (typeof(xmlHttp) == "undefined") return;