Micha: Daten via AJAX werden zu spät geladen

Beitrag lesen

Hallo Patrick,

es sieht für mich so aus, als versuchtst Du schon vor dem eigentlichen Vorhandensein der Daten auf diese zu zugreifen

loadData(winCounter);

hier rufst Du die Funktion auf. Wenn die Funktion durchlaufen ist, heißt das nicht, dass Du auch ein Ergebnis hast. Es wird eine Anfrage gestellt und Du wartest diese nicht ab, sondern

newDiv.innerHTML = response;

gibts hier die (noch) leere Variabel "response" (bzw. dessen Inhalt) an Dein DIV.

In Deiner Funktion ist die Antwort des Servers aber erst wirklich da, wenn Du den Status 4 erreicht hast.

if (xmlHttp.readyState == 4)
             response = xmlHttp.responseText;

Mein Problem ist nun, dass beim 1. Klick nichts passiert,

Korrekt, Du wartest die Anwort nicht ab

beim 2. Klick allerdings die Daten des 1. Klicks angezeigt werden.

Ja, da sind die Daten des ersten Klicks dann geladen. Beim zweiten Klick hast Du aber wieder das Problem, das Du nicht wartest. Somit wird erst nach Deiner Zuweisung der Inhalt von response überschrieben.

Hab ich vielleicht irgendwo was übersehen?

Möglicherweise, ja ;-)

Du könntest in der Funktion den Text zuweisen:

  
 if (xmlHttp.readyState == 4)  
    newDiv.innerHTML = xmlHttp.responseText;  

Mit freundlichem Gruß
Micha