Ich frage mich, was ist der beste Weg, Timeouts mit jQuery.ajax() zu behandeln. Das ist im Moment meine Lösung: Wenn eine Zeitüberschreitung auftritt, wird die Seite neu geladen und das Skript erhält eine weitere Chance, die Daten innerhalb des angegebenen Zeitrahmens zu laden.jQuery.ajax() - Wie man Timeouts am besten behandelt?
Problem: wenn "get_json.php" (Beispiel unten) wirklich nicht verfügbar ist, wird es eine endlose Nachlade-Schleife. Mögliche Lösung: Hinzufügen eines Zählers und Abbrechen nach $ x Neuladen.
Frage 1: Wie mit dem Timeout-Fehler am besten umgehen?
Frage 2: Was ist Ihr empfohlener Zeitrahmen für eine Zeitüberschreitung und warum?
-Code:
$.ajax({
type: "POST",
url: "get_json.php",
timeout: 500,
dataType: "json",
success: function(json) {
alert("JSON loaded: " + json);
},
error: function(request, status, err) {
if (status == "timeout") {
// timeout -> reload the page and try again
console.log("timeout");
window.location.reload();
} else {
// another error occured
alert("error: " + request + status + err);
}
}
});
Vielen Dank im Voraus!
Warum die gesamte Seite neu laden, anstatt nur den Ajax-Aufruf erneut zu versuchen? – JJJ
@Juhana: meinst du $ .ajax (this); ? –
Nun ja, zum Beispiel. – JJJ