Voici quelques exemples qui démontrent définition et détection de l'expiration des délais pour jQuery d'anciens et de nouveaux paradigmes.
jQuery 1.8+
$.ajax({
url: "/getData",
timeout:3000 //3 second timeout
}).done(function(){
//do something
}).fail(function(jqXHR, textStatus){
if(textStatus == 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
});
Démonstration En Direct
jQuery <= 1.7.2
$.ajax({
url: "/getData",
error: function(jqXHR, textStatus){
if(textStatus == 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
},
success: function(){
//do something
},
timeout:3000 //3 second timeout
});
Notez que le textStatus param (ou jqXHR.statusText) qui vous permettra de savoir ce que l'erreur a été. Cela peut être utile si vous voulez savoir que le problème a été causé par un délai d'attente.
erreur(jqXHR, textStatus, errorThrown)
Une fonction est appelée si l'
demande échoue. La fonction reçoit trois arguments: Le jqXHR (en
jQuery 1.4.x, XMLHttpRequest) objet, une chaîne de caractères décrivant le type de
erreur qui s'est produite et en option un objet d'exception, si l'on s'est produite.
Les valeurs possibles pour le deuxième argument (d'ailleurs null) sont "timeout",
"erreur", "abandon", et "parsererror". Quand un HTTP erreur se produit,
errorThrown reçoit le texte du statut HTTP, tels que
"Non Trouvé" ou "Erreur Interne du Serveur." Comme de jQuery 1.5, l'erreur
le réglage peut accepter un tableau de fonctions. Chaque fonction sera appelée
à tour de rôle. Remarque: Cette fonction n'est pas appelée pour la croix-domaine de script et
JSONP demandes.
src: http://api.jquery.com/jQuery.ajax/