2012-11-27 67 views
0

我一直在研究基於客戶端 - 服務器的應用程序的跨平臺移動解決方案。我正在使用ajax調用來向服務器發起Web服務調用。大多數Web服務工作正常,但是當需要根據請求在服務器端執行一些計算並且響應延遲時,我得到狀態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分鐘後我得到這個錯誤。在原生android應用程序中嘗試相同的代碼工作正常,沒有任何問題。是否有任何選項可以確保在從服務器獲取完整響應之前,請求不會中斷。 可能是我錯了,但如果沒有,將有任何選項設置轉彎時間進行Web服務調用?由於這是基於MOBILE BROWSER的應用程序,如果響應時間超過2分鐘,瀏覽器是否可以選擇用狀態0響應取消請求。甚至沒有收到錯誤信息。 如果您需要更多信息,請讓我知道。

回答

0

長ajax連接 - 對服務器性能非常不利。怎麼樣每隔一段時間檢查一次狀態?您可以使用功能setInterval來製作計時器。每一段時間你都會檢查任務的狀態。