2012-08-28 84 views
1

我有這個功能,並且它在大多數時間都能正常工作,但是如果發生不規則的事情,客戶端將不知道爲什麼加載gif總是顯示。Ajax請求 - 超時錯誤/警告

我想知道如果我可以定義20秒超時,如果Ajax請求是不成功的加載GIF消失,顯示如「連接丟失」或類似的錯誤:

function ajaxrequest(){ 
       var params = []; 
       for (var i=0; i < submit.length; i++) { 
        var ele = submit[i]; 
        params[i] = ele + '=' + $('#' + ele).attr('value'); 
       } 
       params = params.join('&'); 
       $(".agendarleft").html("<center><img src='skins/{VAL_SKIN}/styleImages/iloading.gif'></center>"); 
       $.ajax({ 
       type: "GET", 
       url: "ajaxload/como.php", 
       data: params, 
       success: function() { 
       $(".agendarleft").html("<center><div style='height:50px'><h2>Enviado! Seremos breves na resposta.</h2></div></center><br/><img src='../skins/Sandbox_Light/styleImages/after1.jpg'/></center>"); 
       } 
       }); 
      } 

回答

2

請點擊這裏超時參數

http://api.jquery.com/jQuery.ajax/

演示:http://jsfiddle.net/u3f9C/183/

如果茶中斷超時到1000你會看到錯誤。現在,它應該顯示超時值,因爲超時值非常低,甚至在嘗試連接到url之前超時。

+0

如何錯誤的參數處理?它什麼時候發生?我應該使用「超時」還是「錯誤」? – skills

+0

@skills我已經編輯了我的答案,演示 –

+0

在上例中,無論請求失敗(500或其他),微調器都會無休止地旋轉。如果是這樣的話,那不是一個真正的超時問題,而是一般的錯誤處理問題,正如我在我的回答中提到的那樣。如果你的服務器沒有響應,並且你想在一段時間後手動超時請求,Sones Dabhis的答案是完全正確的。 – trueunlessfalse

0

您可以設置一個錯誤回調,像這樣:

$.ajax({}).error(function(){ // remove spinner or do something else }); 

參見:http://api.jquery.com/jQuery.ajax/

或者在您的要求上面的風格:

$.ajax({error: function() {}, success: function() {} });