2012-11-27 4 views
0

저는 클라이언트 - 서버 기반 응용 프로그램 인 크로스 플랫폼 모바일 솔루션에서 작업 해 왔습니다. 아약스 호출을 사용하여 서버에 웹 서비스 호출을하고 있습니다. 대부분의 웹 서비스는 정상적으로 작동하지만 요청에 따라 서버 측에서 수행해야하는 계산이 있고 응답에 지연이있는 경우 상태 0이 응답으로 표시됩니다. 시간 초과 옵션으로 시도했지만 아무 쓸모가 없습니다. 참조 용으로 동일한 코드 스 니펫을 추가하십시오. 서버 응답이 빠른 경우jQuery ajax 호출은 모바일 솔루션에서 상태 0을 제공합니다.

$.ajax({ 
     type: "POST", 
     url: wsUrl, 
     contentType: "text/xml", 
     dataType: "xml", 
     timeout: 300000, 
     data: soapRequest, 
     success: processSuccess, 
     error: processError 
}); 

function processSuccess(data, status, req) 
{ 
} 

function processError(data, status, req) 
{ 
    console.log(data+'--------- '+status+'-------- '+req); 
} 

때때로, 우리는 예상 응답을 받고 있지만 대부분의 시간, 우리는 상태 0 오류가 있습니다. 대부분이 2 분 후에 나는이 오류를 얻고있다. 네이티브 안드로이드 응용 프로그램에서 동일한 코드를 사용해도 아무런 문제없이 잘 작동합니다. 서버에서 전체 응답을 가져올 때까지 요청이 중단되지 않도록하는 옵션이 있습니까? 내가 틀렸을 수도 있지만 그렇지 않다면 웹 서비스 호출을하는 동안 턴 시간을 설정하기위한 옵션이 있습니까? 모바일 브라우저 기반 응용 프로그램이므로 응답이 2 분 이상 걸릴 경우 브라우저는 상태 0 응답으로 요청을 취소 할 수 있습니다. 심지어 오류 메시지가 없습니다. 추가 정보가 필요하면 알려주십시오.

답변

0

긴 ajax 연결 - 서버 성능에 매우 좋지 않습니다. 매 간격마다 상태를 확인하는 것은 어떻습니까? 타이머를 만들기 위해 setInterval 기능을 사용할 수 있습니다. 그리고 매 시간마다 작업 상태를 확인합니다.

관련 문제