Aggiungo qualche altra informazione!


Originariamente la funzione era così fatta:

function controlloReturn_3() {
var cod_prod=document.getElementById('codice_prodotto' ).value;
getProdottoMagazzino("controllo_prodotto", cod_prod);
setTimeout("aggiornamento()", 500);
}

Grazie al ritardo di 500millis la funzione aggiornamento() poteva accedere ai dati caricati dalla funzione getProdottoMagazzino().

Succedeva spesso che a causa di una connessione lenta, la funzione aggiornamento non aveva a disposizione i dati caricati dalla funzione getProdottoMagazzino() (tramite ajax)

Inserire il ciclo do-while mi è venuto in mente per non essere vincolato da un ritardo prefissato; il mio ragionamento è: "se trovi il campo 'descrizione_prodotto' vuol dire che la funzione getProdottoMagazzino() ha caricato con successo il form e quindi puoi eseguire la funzione aggiornamento();"

Questa logica è corretta MA SOLO se si inserisce un alert() nella funione, in questo modo:

do {
var obj=document.getElementById("descrizione_prodotto" );
alert("TEST");
} while (obj==null);

In assenza si alert() il ciclo do-while si blocca!

Assenza di logica in tutto questo.
Qualcuno mi può illuminare?