avrei provato questa soluzione ma ha un comportamento strano con Explorer:
codice:
......
......
myRequest.open("GET", ......................);
myRequest.send(null);
var timer = setTimeout('prenditesto();',20000);
myRequest.onreadystatechange=function(){
if (myRequest.readyState==4 && timer<15000 ) {
if (myRequest.status == 200) {
...bla bla bla scrive azioni in chat ...
} else {
document.getElementById("outputList").innerHTML +="ERRORE "+myRequest.status;
}
} else prenditesto();
}
Ho un timeout dove ripete la stessa funzione ogni 20 secondi.
ho aggiunto accanto alla condizione del readystate 4 la condizione che la variabile timer sia inferiore a 15 secondi.Quindi, se al 15° secondo non è ancora arrivato lo stato 4, lui dovrebbe far ripartire la funzione.
il problema è che mentre con Firefox funzia, Explorer NON da errore, ma NON ritiene vera la condizione.
infatti se per debug all'ultimo else invece della funzione gli faccio scrivere i readystate (lui mi scrive in chat 1 2 3 ecc ad ogni cambio stato):
codice:
else document.getElementById("outputList").innerHTML += myRequest.readyState+"
";
..con explorer mi scrive anche il "4", segno che ha ritenuta falsa la condizione del timer<15000. Firefox invece la ritiene giusta e mi fa l'output corretto =_=
perché tutto questo? c'è un errore di sintassi (la console non mi dice nulla, e manco explorer)