2011-10-07 5 views
0

응답을 보내려면 50 분이 걸리는 CGI 스크립트를 하나 호출해야합니다. 해당 CGI에서 응답이 올 때까지 xhr을 유지해야합니다. 어떻게 그럴 수 있습니까? 특정 기본 시간 요청이 자동으로 시간 초과 된 것처럼 보입니다.응답이 도착하기 전에 XMLHttpRequest가 시간 초과됩니다.

+2

CGI 스크립트를 최적화 해보십시오. 50 분이 너무 많이 걸립니다. – Ankit

답변

0

당신은 사용할 수 있습니다

xhr.timeout = 10000; 
xhr.ontimeout = timeoutFired; 

를이 목적

+0

답장을 보내 주셔서 감사합니다.하지만 timeoutFired는 무엇입니까 ?? – Ved

+0

timeoutFired가 시간 초과가 발생하면 호출되는 함수입니다 (즉, 특정 기간 후에 요청을 무시하려면이 함수를 사용할 수 있습니다). – Ankit

0

을 위해 당신이 요청이 인라인 일을해야한다고 생각하지 않습니다. 다른 방법은 작업으로 요청을 일부 백엔드 프로세스/스레드/메시지 대기열에 제출하고 참조를 저장하여 결과에 액세스 할 수 있도록하는 것입니다. 처리가 완료되면 데이터베이스 또는 파일에 저장됩니다.

결과가 나타날 때까지 '업데이트 중'텍스트 또는 회전 아이콘을 표시하여 사용자에게 어떤 일이 일어나고 있음을 알릴 수 있습니다.

그 기간 동안 나는 열린 HTTP 연결에 의존하지 않을 것입니다.

+0

응답을위한 Thnx이지만 수행해야하는 방법 이것은 요구 사항에 따라 다릅니다. 실제로 cgi 호출이 완료 될 때까지 사용자는 아무 것도 할 수 없습니다. – Ved

+0

@ adn295 :이 작업을 수행하려면 일단 요청이 전송되면 (xmlhttprequest 요청 전송 코드 확인) 응답을 받으면 해당 이미지를 제거한 후 로딩 이미지 (배경을 비활성화하여 작업을 수행하지 않도록)를 표시하십시오. – Ankit

관련 문제