2009-06-19 9 views
1

asp.net 페이지 메서드에 AJAX 콜백을 만들기 위해 JQuery를 사용하고 있습니다. 모든 것이 잘 작동합니다. 그러나 장기 실행 콜백이 진행되는 동안 하이퍼 링크를 클릭하여 새 페이지로 이동하면 대상 페이지가 정상적으로 응답하지 않습니다. 대상 페이지가 콜백 완료와 동일한 시간 내에 응답하기 때문에 콜백 대기를 기다리고있는 것처럼 보입니다. 진행중인 콜백이 없으면 새 페이지가 즉시 응답합니다. 디버거에서 코드를 실행하면 하이퍼 링크를 클릭 할 때 오류 처리기가 호출되어 콜백을 중단하고 readyState를 4로 설정하고 상태를 0으로 설정합니다.JQuery Ajax

따라서 하이퍼 링크를 클릭 할 때 장기 실행 콜백이 올바르게 중단되는 이유는 무엇입니까? 새 페이지를 열려면 너무 오래 걸립니까?

감사합니다. Charlie

답변

0

자동 생성 JavaScript에 오류가 있습니다. 스크립트 디버깅을 활성화하고 페이지를 떠나기 전에 오류가 발생하는지 확인할 수 있습니까?

0

특정 시스템에서 Ajax를 성공적으로 실행 한 적이 있습니까? 그렇지 않다면 아마도 브라우저 호환성 문제 일 겁니다. 일반적인 브라우저에서 원활하게 작동하기 때문에 JQuery, Dojo 또는 Scriptaculous를 사용하려고합니다. Raw Ajax는 매우 실망스럽고 디버깅하기 어려울 수 있습니다.

그리고 Yuriy이 말한 것처럼 일부 코드가 도움이됩니다. 행운을 빕니다!

0

파이어 폭스 용 파이어 버그가 이러한 유형의 문제를 파악하기 위해 태어났습니다.

방화 광을 사용하도록 설정하고 콘솔 탭을 열어 두십시오. 콘솔에서 각 웹 서비스 호출에 대한 새로운 행이 나타납니다. 차갑게 생각하면 보내고받는 것을 조사 할 수 있습니다.

0

$ .ajax 함수의 'success'매개 변수 ('error', 'dataFilter'등과 함께)는 실제로 서버에서 응답을받을 때 실행되는 콜백 함수입니다. 당신이 당신의 AJAX 요청을하고 응답를받을 때 그 콜백 함수에 반환 후

그래서 스크립트는 계속 실행됩니다.

$.ajax({ 
    url: 'ajax/test.html', 
    success: function(data) { 
    //Runs after response is received 
    //Put stuff that depends on the response from the server here 
    } 
}); 
//Next statement runs immediately after request 
//Put stuff here that can run right away