AJAX 요청이 완료되지 않았는데 페이지 이탈하는 경우
321 hit since 2007/12/07 13:31
AJAX 요청이 완료되지 않은 상태에서 페이지를 새로고침 하거나 다른 페이지로 이동을 하는 경우 변수가 defined되어 있지 않다는 javascript 에러 메시지가 나오게 된다.
예를 들어 다음과 같은 상황이다.
- xmlHttp = GetXmlHttpObject();
- xmlHttp.onreadystatechange = onComplete;
- xmlHttp.open("GET", url, true);
xmlHttp.send(null); - function onComplete()
{ - if (xmlHttp.readyState == 4)
- { ... }
- }
위와 같은 코드에서 xmlHttp.readyState를 읽으려 할 때 다음과 같은 에러가 3번 연속적으로 발생한다.
- error: xmlHttp not defined.
- line xxx: ....
에러가 발생해도 페이지를 이탈하는 것이기때문에 별 문제가 없으나, 에러 라고 나오는 것 자체가 기분이 나쁘다.
다음과 같이 변수 타입을 체크하여 에러 메시지를 막을 수 있다.
- if (typeof(xmlHttp) == "undefined") return;


Trackback (0)
Comment (0)