Ich möchte einen Ajax-Aufruf in eine Funktion einfügen, da ich ihn wiederholt an mehreren Stellen verwende. Ich möchte eine manipulierte Version der Antwort zurückgegeben. Hier ist, was ich versuche (stark vereinfacht).
%Vor%Was jedoch passiert, ist, dass die append-Funktion ausgeführt wird, bevor "a" in der Funktion getAjax definiert wurde. Irgendwelche Gedanken?
Es gibt zwei Möglichkeiten, dies zu kennzeichnen. Eine besteht darin, den Erfolgsrückruf zu verwenden:
%Vor%Der andere besteht darin, async auf false Ссылка zu setzen:
%Vor%Wichtiger Hinweis zu nicht asynchron:
Domänenübergreifende Anforderungen und dataType: "jsonp" -Anfragen unterstützen keine synchrone Operation.
AJAX ist asynchron. Dies bedeutet, dass der Code im Erfolgshandler verzögert wird, bis die Anfrage erfolgreich ist, während der Rest des Codes normal weiterläuft. Sie müssen den entsprechenden Code in den AJAX-Success-Handler einfügen:
%Vor% Beachten Sie, dass ich Ihren body
Selektor auch mithilfe des nativen Javascript document.body
optimiert habe, anstatt den Standard-Tag-Selektor zu verwenden.
Bearbeiten Rückrufversion
%Vor%Sie können den Code nun inline mit einer Callback-Funktion ausführen:
%Vor%oder
%Vor%oder was auch immer.
Der Code innerhalb des anonymen Funktionsaufrufs wird verarbeitet, wenn die AJAX-Anforderung abgeschlossen ist.
Ein Vorschlag, den ich habe, besteht darin, einen Trigger an den Befehl zu übergeben, der in der AJAX-Funktion ausgeführt werden soll, damit er ausgeführt wird, nachdem AJAX eine Antwort erhalten hat -
%Vor%Auf diese Weise können Sie if-Anweisungen / andere Alternativen erstellen, um den gleichen AJAX-Befehl für unterschiedliche Ergebnisse zu verwenden
Tags und Links javascript jquery ajax