Ermitteln Sie, ob der $ .ajax-Fehler ein Timeout ist
Ich bin unter Verwendung der Magie der jQuery.ajax( settings )
.
Allerdings, ich wundere mich, wenn jemand gespielt hat, mit der Einstellung timeout viel?
Ich weiß, es ist im Grunde für diktieren die lokale Zeit für eine Anfrage, aber es kann etwas auslösen, wenn das timeout erreicht ist? Oder ist es einfach nicht mehr Zuhören für eine Antwort?
Lesen der jQuery-Website, ich kann sehen, es gibt keine Argumente übergeben, so dass es scheint wie eine einfache Einstellung mit einer Fähigkeit. Was in Ordnung ist.
Aber ich möchte eine Warnung auslösen oder eine Funktion, wenn das timeout erreicht ist. Ich kann sehen, dass der Fehler in der Einstellung nicht ausgelöst, in diesem Fall.
Hier mein snippet:
$("form#testform").submit(function(){
var allFormValues = $("form#testform").serialize();
$.ajax({
cache:false,
timeout:8000, //I chose 8 secs for kicks
type:"POST",
url:"someurl.php",
data:allFormValues,
error:function(){ alert("some error occurred") },
success:function(response){ alert(response); }
});
});
Weiß jemand, wie man mehr arbeiten mit timeout?
InformationsquelleAutor der Frage coffeemonitor | 2010-08-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr Fehler Ereignis-handler nimmt die drei Argumente (xmlhttprequest, textstatus, und Nachricht), wenn ein timeout passiert, der status der arg wird 'timeout'.
Pro die jQuery-Dokumentation:
Du kannst deinen Fehler dann entsprechend.
Habe ich diese fiddle veranschaulicht dies.
Mit jsFiddle, können Sie testen Sie ajax-Aufrufe-es wird 2 Sekunden warten, bevor Sie reagieren. Ich setzen Sie das timeout auf 1 Sekunde, so sollte es Fehler aus und pass wieder ein textstatus von 'timeout' der error-handler.
Hoffe, das hilft!
InformationsquelleAutor der Antwort David Hoerster