2013-05-14 32 views
20

Eğer jQuery's $ .ajax işlevi timeout isabet ediyorsa bir işlevi çalıştırmanın bir yolu var mı?ajax zaman aşımı geri arama işlevi

yani

$.ajax({ 
... 
... 
,timeout:1000(){do something if timeout) 
... 

}); 
+2

istediğiniz Belki neyi: http://stackoverflow.com/questions/3543683/jquery-ajax-timeout

Ayrıca artık döndürülen JQuery ertelenmiş vaat nesnenin .fail yöntemle aracılığıyla hata işleyicileri bağlayabilirsiniz – Eli

cevap

40
$.ajax({ 
    ... 
    timeout: 1000, 
    error: function(jqXHR, textStatus, errorThrown) { 
     if(textStatus==="timeout") { 
      //do something on timeout 
     } 
    } 
});​ 

Daha fazla bilgi için JQuery belgelere bakın:

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


düzenlenmiştir

İlk olarak bunu yanıtladığımdan bir yıl geçti ve textStatus olası değerleri "success", "notmodified", "error", "timeout", "abort", veya "parsererror" olarak değiştirildi. Hata geri bildirimleri için sadece son dört durum mümkündür.

var promise = $.ajax({ timeout: 1000 }); 

promise.fail(function(jqXHR, textStatus) { 
    if(textStatus==="timeout") { 
     // handle timeout 
    } 
}); 
+4

-setting Genellikle, bir kod bloğu bırakmak yerine iyi cevaplar açıklanmaktadır. – Daedalus

+13

@Daedalus Bu durumda kodun kendi kendini açıklayıcı olduğunu söyleyebilirim. – Paulpro

+1

@Paulpro Kabul etmem. Bazen 'zaman aşımı' ile eşit olan bir dize dışında, hata işlevine iletilenler açıklanmıyor. – Daedalus

İlgili konular