Hello,
Was ist eine asyncrone funktion und wie nehme ich eine syncrone?
was eine asynchrone Funktion ist habe ich dir gerade schon erklärt: sie started aber obwohl das Ergebnis noch nicht vorliegt läuft der umliegende Code weiter:
Beispiel Synchron (schematisch):
synchroneNachricht("Hallo");
alert("Du");
Würde erst Hallo und dann Du ausgeben
Beispiel asynchron:
asynchroneNachricht("Hallo");
alert("Du");
KÖNNTE auch Du und Hallo ausgeben, je nachdem wie schnell die asynchrone Funktion zu Ende läuft.
Zunächst mal stimme ich Vinzenz zu, sowohl was dein Doppelpostingverhalten angeht als auch in Bezug auf den logischen Ansatz: füge doch den Bildaustausch einfach an der Stelle ein, wo das Ergebnis verarbeitet wird. Das ändert doch absolut nichts daran, dass die Funktion mehrfach verwendbar ist und es im Bedarfsfall nur einer einzigen Änderung bedarf.
Wenn du das nicht willst wird es etwas komplizierter, weil es AFAIK kein direktes synchrones Pendant zu dem HTTPRequest gibt. Man müsste sich nach einer Herangehensweise über das ganze Fenster oder ein Unterfenster etwas konstruieren, wobei es auch da schwer ist Synchronität zu sichern. Nur nochmal, die Stärke von AJAX ist eben gerade der explizit gewünschte asynchrone Ablauf im Hintergrund, daher meine Verwunderung.
MfG
Rouven
-------------------
Wenn du die Nadel im Heuhaufen nicht findest, zünde den Heuhaufen an.