Credo di essere riuscito a strutturare una buona asincronizzazione delal chat, usando l'xml; ho fatto così:
[client]
Codice HTML:
var lastid = 0;
function getMessage()
{
new Ajax.Request( 'miapaginaxml?id=' + lastid, {
onSuccess: function( transport ) {
var messaggi = transport.responseXML.getElementsByTagName( 'messaggio' );
for( var i = 0; i < messaggi.length; i++ )
{
var id = parseInt( messaggi[i].getAttribute('id') );
}
if(id > lastid)
{
$.post('miachatnuovomessaggio',function(e){
$('div#newmessage').after( '<span id="'+id+'">' + e + '</span>' );
$('span#'+id).hide().toggle('slow');
});
lastid = id;
}
}
});
}
[SERVER]
Codice PHP:
<?php
include_once 'miaconfigurazionenonsbirciate';
header( 'Content-type: text/xml' );
$id = 0;
if ( array_key_exists( 'id', $_GET ) ) { $id = $_GET['id']; }
$id = mysql_real_escape_string($id);#bah tanto per fare
$r_m = $DB->query("SELECT id,mex FROM miatabella WHERE id > '$id' ");
?>
<messaggi>
<?php
while($f_m = $r_m->fetch_assoc())
{
extract($f_m);
?>
<messaggio id='<?=$id?>'></messaggio>
<?php
}
?>
</messaggi>
Grazie a tutti comunque xD Ciao belli!