2012-02-28 2 views
3

생성해야하는 보고서가 매우 커서 두 건의 jQuery AJAX 요청을 사용하고 있습니다. 첫 번째 명령은 보고서 확인 명령을 보냅니다. 두 번째는 원래 함수에서 설정 한 플래그의 상태를보고하는 "checkStatus"함수입니다.jQuery 긴 요청에 대해 중단 후 AJAX 요청이 다시 전송됩니다.

그러나 약 1 분 후에 원래 요청은 "중단됨"으로 표시되고 서버 로그는 두 번째 "getReport"요청이 시작되었음을 보여줍니다. Firebug는 두 번째 요청이 나가는 것을 표시하지 않지만 확실히 들어오는 요청은 하나입니다. 보고서가 결국 생성되기 때문에 서버는 원래 요청에서 시간 초과되지 않습니다. 15 분짜리 보고서라면 15 대의 서버가 동시에 실행되어 궁극적으로 서버가 다운되는 문제가 있습니다. 마지막으로 요청이 실행중인 브라우저 창을 닫으면 여러 요청이 발생하지 않으므로 브라우저에서 전송됩니다.

아, 내 로컬 호스트에서는 정상적으로 작동하지만 동일한 모든 것 (PHP 버전 포함)에도 불구하고 실제 서버에서는 작동하지 않습니다.

매우 기묘한 문제입니다. 어떤 아이디어?

+0

어떤 브라우저를 사용하고 있습니까? – wajiw

+0

모든 브라우저에서 동일, mac : chrome, safari, FF. Windows : IE 8/9, FF, Chrome –

+0

해결 방법을 찾으셨습니까? 동일한 문제가 발생했습니다 (긴 요청이 중단 된 후 자동으로 다시 전송됩니다). –

답변

0

나는 코드에서 실패한 부분을 찾기 위해 보고서를 실행하지 않고 보고서에서 긍정적 인 결과를 가져 와서 디버깅하려고합니다. 이 문제는 JS/Apache/백엔드 스크립팅 영역에서 발생할 수 있습니다.

신고 전화를하지 않고도 앱이 ajax -> server -> 클라이언트에서 작동하는 경우 보고서의 Gen 코드에서 무언가가 폭탄을 요구하고 있습니다.

+0

즉, 실제 보고서를 작성하여 주석으로 처리하고 결과를 얻을 수 있는지 확인합니다. 나는한다. 문제 없어. 나는 그것이 보고서 호출이라고 생각하지 않는다 - 그것은 로컬 호스트에서 잘 작동한다. 아파치 백엔드에는 어떤 가능성이 있습니다. 우리는 AJAX를 사용하기 때문에 AJAX가 잘 작동합니다. 그것은 단지 계기로 ... –

+0

또 다른 새로운 개발. 여러 요청을 차단하는 코드를 추가했습니다. 하나의 코드가 실행 중인지 확인한 후 반환됩니다. 보고서가 작동하지만 잠시 후 상태 확인 기능이 중지됩니다. –

+0

전화가 가능한 경우 다시 의존하지 않도록 전화를 다시 설계하는 방법에 대해 생각해보십시오. 그것이 복잡해진 것 같아요 디버깅이 다른 솔루션을 찾는 것보다 오래 걸릴 수도 있습니다. AJAX 호출이 시스템 프로세스 (즉, 보고서 생성)에 의존하지 않는지 확인하십시오. 이미 처리 된 데이터를 잡는 용도로만 AJAX를 사용하는 방법을 찾는 것은 사용하려고하는 것보다 나은 해결책 일 수 있습니다. Ajax 폴링은 당신의 친구 =) – wajiw

관련 문제