ChrisB: Ajax: return() Problem

Beitrag lesen

Hi,

Ich möchte meine scripte möglichst universell halten, deswegen kann ich es nicht leiden, wenn in der Fkt. die die Ajaxinstanzen aufruft, die Ergebnisse direkt verarbeitet werden (wie im Kurs-Beispiel).
Ursprünglich wurde das <div> mit der ID "hallo" direkt in Zeile 44 mit dem Ergebnis von req.responseText beschrieben- das hat funtionier. Wie gesagt das möchte ich vermeiden und den Wert lieber über'n  return() zurückgeben. in Zeile 11 werden die nötigen Parameter auch korrekt übernommen. Egal ob ich meinen return() in zeile 45 oder 45 schreibe, er gibt jedesmal "undefined" zurück. Der alert() in Zeile 44 gibt aber korrekt "Hallo Welt" aus!

Bedingt durch die asynchrone Arbeitsweise von AJAX wird die Funktion, die du als readyState-Handler angibst, nicht "direkt" aufgerufen, sondern aus dem aktuellen Ausfuehrungskontext herausgeloest. Dementsprechend hat diese gar keine "Stelle", an die sie per return Daten zurueckgeben koennte.

Wenn du also nicht auf synchrone Abarbeitung umsteigen moechtest (das ist generell keine gute Idee, weil es die restliche Scriptabarbeitung auf der Seite blockieren kann) - dann ueberlege dir, wo du den Wert "zwischenspeichern" kannst, und wie du danach eine weitere Funktion aufrufst, die etwas mit dem Wert anfaengt.

MfG ChrisB

--
„This is the author's opinion, not necessarily that of Starbucks.“