Ciao a tutti.
Ho realizzato in php una chat, e aggiorno costantemente la pagina tramite Ajax.
Questo è il codice:
function refresh(){
var xmlhttp;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
alert("XMLHTTP non supportato");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
document.getElementById("chat1").innerHTML=xmlhttp .responseText;
}
}
xmlhttp.open("POST","chatbody.php?loc=<?=$_GET['loc']?>",true);
xmlhttp.send(null);
}
window.setInterval("refresh()",3000);
Può sembrare spartana, e sicuramente c'è un modo migliore per refreshare constantemente. Se sapete indicarmente uno, sono qui
La domanda: Ajax va ad aprire il file chatbody.php, che effettua varie queryes e stampa i risultati; è possibile estrarre solo quelli nuovi, lasciando i vecchi visibili?
Esempio: 10 scritte in chat. Nel primo minuto ne scrivono 8, nel secondo 2. Ajax può andare a recuperare quelle 2, senza dover ricare tutte le "10"? (lasciandole visibili tutte ovviamente)