Heim > Artikel > Web-Frontend > Warum sind die Rückgabewerte meiner AJAX-Funktion leer?
Das Rätsel der nicht zurückgegebenen Variablen in AJAX-Funktionen
Im Bereich von Webanwendungen ist es üblich, JavaScript-Code zur Verbesserung in separate Dateien zu modularisieren Organisation und Wartbarkeit. Allerdings kann dieser Übergang zu rätselhaften Problemen führen, wie zum Beispiel, dass Variablen scheinbar verschwinden, wenn sie von AJAX-Funktionen zurückgegeben werden.
Problem:
Nach der Aufteilung eines Frameworks in mehrere Dateien, ein Entwickler Es tritt ein Problem auf, bei dem eine von einer AJAX-Funktion zurückgegebene Variable leer bleibt. Obwohl die Daten in der JS-Datei vorhanden sind, werden sie bei der Ausführung nicht zurückgegeben. Der untersuchte Code:
function get_data(data, destination) { ... if (data) { return data; } }
var test = get_data(data, destination);
Ursache:
Die asynchrone Natur von AJAX-Aufrufen ist der Übeltäter. Ein AJAX-Aufruf wird im Hintergrund ausgeführt, d. h. der Code wird weiter ausgeführt, ohne auf die Antwort zu warten. Folglich kehrt die Funktion get_data zurück, bevor der AJAX-Aufruf abgeschlossen ist, was zu einer leeren Testvariablen führt.
Lösung:
Um dieses Problem zu beheben, ist die Verwendung eines Rückrufs erforderlich Funktion zur Verarbeitung der AJAX-Antwort. Wenn der AJAX-Aufruf abgeschlossen ist, wird eine Rückruffunktion aufgerufen, die Ihnen den Zugriff auf die zurückgegebenen Daten ermöglicht.
function get_data(data, destination, callback) { ... if (data && callback) { callback(data); } }
get_data(data, destination, function(test) { notice(test); });
Das obige ist der detaillierte Inhalt vonWarum sind die Rückgabewerte meiner AJAX-Funktion leer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!