Hier einige Beispiele, die das Festlegen und Erkennen von Zeitüberschreitungen in den alten und neuen Paradigmen von jQuery veranschaulichen.
Live Demo
Versprechen Sie mit jQuery 1.8+
Promise.resolve(
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
})
).then(function(){
//do something
}).catch(function(e) {
if(e.statusText == 'timeout')
{
alert('Native Promise: Failed from timeout');
//do something. Try again perhaps?
}
});
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?
}
});
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
});
Beachten Sie, dass der Parameter textStatus (oder jqXHR.statusText ) Sie über den Fehler informiert. Dies kann hilfreich sein, wenn Sie wissen möchten, dass der Fehler durch eine Zeitüberschreitung verursacht wurde.
Fehler (jqXHR, textStatus, errorThrown)
Eine Funktion, die aufgerufen werden soll, wenn die Anforderung fehlschlägt. Die Funktion erhält drei Argumente: Das Objekt jqXHR (in jQuery 1.4.x, XMLHttpRequest), eine Zeichenfolge, die den aufgetretenen Fehlertyp beschreibt, und ein optionales Ausnahmeobjekt, falls eines aufgetreten ist. Mögliche Werte für das zweite Argument (neben null) sind "timeout", "error", "abort" und "parsererror". Wenn ein HTTP-Fehler auftritt, empfängt errorThrown den Textteil des HTTP-Status, z. B. "Nicht gefunden" oder "Interner Serverfehler". Ab jQuery 1.5 kann die Fehlereinstellung eine Reihe von Funktionen akzeptieren. Jede Funktion wird nacheinander aufgerufen. Hinweis: Dieser Handler wird nicht für domänenübergreifende Skript- und JSONP-Anforderungen aufgerufen.
src: http://api.jquery.com/jQuery.ajax/
,
nach dem}
.