non benissimo, provo ad interpretare:
da quanto hai scritto sembra si debba far terminare l' esecuzione a seconda di una "risposta" che ti può arrivare in qualsiasi momento
ti ho buttato giù un esempio in cui in qualsiasi momento arriva la risposta (valorizzazione di una var) cmq viene terminata la parte di temporizzazione che riguarda i puntini
e dopo mostrato il messaggio finale opportuno
come al solito si potrebbe risolvere in tante altre maniere
codice:
<html>
<head>
<title></title>
<script type="text/javascript">
var strBase="Controllo Username in corso";
var log=false;
var testo=new Array("",".","..","...","... OK","... FALLITO")
var idx=-1
var timer=false
function controlla(){
idx=(idx==3)?((log)?((log=='ok')?4:5):0):++idx;
document.getElementById('box').innerHTML=strBase+testo[idx];
if(idx>=4) clearTimeout(timer);
else timer=setTimeout("controlla()",1000);
}
window.onload=controlla
</script>
</head>
<body>
<div id="box"></div>
<form>
<input type="button" value="setta var log = 'ok'" onclick="log='ok'">
<input type="button" value="setta var log = 'no'" onclick="log='no'">
</form>
</body>
</html>