So versuche ich, Daten von einem Server im JSON-Format zu holen.JavaScript-Code nicht in der Reihenfolge
mit diesem Code
for (var i = 0; i < hosts.length; i++) {
var tempUrl = url + hosts[i];
jQuery.ajax({
type : "GET",
dataType : "json",
username : "user",
password : "password",
url : url,
async : true,
success : function (data) {
//var obj = data.data.host.status;
//console.log(obj);
jsonHosts.push(data.data);
console.log("added data");
}
});
}
von diesem Codeblock gefolgt
for (var i = 0; i < jsonHosts.length; i++) {
console.log("dog");
console.log(jsonHosts[i].host.status);
document.getElementById('test').innerHTML += "<br>" + jsonHosts[i].host.status;
document.getElementById('test').innerHTML += '<br>Some new content!';
}
console.log("done");
Problem ist, wird meine Konsole zeigen "fertig" und dann "hinzugefügten Daten" und meine Webseite wird leer sein.
Ich habe versucht, den ersten Abschnitt in eine Funktion zu setzen und zu versuchen, meinen Code auf die Ausführung der Funktion warten zu lassen, aber ohne Erfolg.
trotzdem kann ich diesen Code machen, um/haben den zweiten Block Warten auf den ersten Block auszuführen
Das ist der ganze Sinn eines Callback. Die "Erfolg" -Funktion wird aufgerufen, wenn die AJAX-Anfrage abgeschlossen ist. Dort müssen Sie den Code eingeben, der von der Anforderung abhängig ist. Sie können es auf eine andere Funktion richten, wenn dies die Verwaltung erleichtert. – moopet
Asynchrone Anrufe ... Was Sie getan haben, ist eine Pizza online bestellt. Sobald du auf submit drückst, versuchst du, die Pizza zu essen, die noch nicht in dein Haus geliefert wurde. – epascarello
Durch die Deaktivierung von Async wurde das Problem behoben. Ich bin neu zu Web-Entwickler, so dass ich dieses besondere nicht bewusst war. Vielen Dank für Ihre Hilfe –