ciao!!
oggi ho provato a creare il mio primo script AJAX...
la mia idea era di fare una chat, con una pagina con javascript che richiede e legge i dati forniti da una pagina php che non fa altro che andare a cercare nel database l'ultimo messaggio inserito...oppure invia, con GET, il messaggio da inserire nel database a una pagina php diversa.
(questa è la mia prima prova con AJAX-->non ridete di me)
per inserire i dati nel database la cosa non è molto complicata...
il mio problema era richiamare la pagina php che legga e scriva l'ultimo messaggio presente nel database.
io ho fatto un bellissimo timer, che parlte al caricamento della pagina, che ogni secondo fa questo:
dove ho scritto Problema stava il mio problema che ho risolto x sbaglio sbagliando rigacodice:var i=0; function getXMLHttp() { var xmlhttp = null; if (window.ActiveXObject) { if (navigator.userAgent.toLowerCase().indexOf("msie 5") != -1) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } else { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } } if (!xmlhttp && typeof(XMLHttpRequest) != 'undefined') { xmlhttp = new XMLHttpRequest() } return xmlhttp } objHTTP = getXMLHttp(); objHTTP.open("GET", "server.php?azione=aggiorna"+i, true);<--Problema objHTTP.onreadystatechange = function() {elaboraRisposta()} objHTTP.send(null); function elaboraRisposta() { if (objHTTP.readyState == 4) { var risposta=objHTTP.responseTEXT; if(risposta!=""){ document.getElementById('textarea').innerHTML=risposta; } i=i+1; } } }![]()
inizialmente io inviavo i dati...me li inseriva nel database..ma non me li leggeva...
invece andava se aprivo in una nuova finestra la pagina "server.php"...
invece aggiungendo quello stupido aborto di contatore funziona![]()
perchè??
inoltre avevo aggiunto una bellissima funzione disconnetti che troncava il timer in modo da fermare l'aggiornamento della chat...
ma provando ho constatato che non funzionava![]()
![]()
allora mi è sorto il dubbio...ho sbagliato tutto???
non ho capito nulla di ajax???e del modello asincrono??
cioè che la richiesta la fai una volta e poi resta li e si aggiorna da sola senza fare timer & co??
grazie!
PS.
questa è la mia prima prova con AJAX-->non prendetevela se ho scritto eresie...o se ho fatto/farò domande stupide