La storia dei tempi è presto fatta... se usi ajax il tuo server impiega del tempo a elaborare i dati e rispedirteli (sia con post che con get) quindi devi far aspettare al tuo codice questo tempo... e lo puoi fare usando il complete della chianata ajax, che esegue quello che gli dici quando il tuo server ha risposto, oppure usi una funzione e una variabile globale che viene modificata dal success di ajax e nella tua funzione controlli ogni tot (setInterval) se la variabile è cambiata (e in tal caso fai partire ciò che deve succedere quando la chiamata ajax finisce)