Zitat:
Zitat von seerose
Ich hole mich über AJAX einen String, daraus baue
ich eine Bildgalerie, was eigentlich funktioniert.
in der XMLHttpRequest Routine habe ich meine Galerie Funktion integriert,
also hinter if (xmlHttp.readyState == 4)
ich würde es gerne trennen, so das erst die XMLHttpRequest (get_galerie) Routine aufgerufen wird und dann meine Galerie Funktion
a= get_galerie(id) // holt string über Ajax
galerie(a)
Aber die get_galerie ist schneller fertig als der String geladen wird.
so wird die Galerie kaputt zusammen gebaut.
Gibt es hier eigentlich eine saubere Lösung?
|
Die Lösung steht doch schon in deinem Code?
Der Aufruf nach dem readyState==4
Das kannst du nicht "trennen" in dem Sinn. Du kannst lediglich (und das ist üblich) einen eigenen Callbackauruf übergeben.
In etwa so:
Code:
function get_galerie(id, cb){
...
if (xmlHttp.readyState == 4) {
cb(xmlHttp.responseText);
}
...
}
und dann rufst du die ganze Sache so aus:
Code:
get_galerie(id, function(text) { galerie(text)})
Das ist die übliche saubere Lösung.