Código
echo mostrarDatos($fila, $color); }
Esa funcion mostrarDatos te devuelve todos los datos y es lo que madas de regreso al ajax..
Offtopic para chiste geek.
Citar
Su nombre es Francis, saco lo de Ajax del javascript....
Como te decia En cada actualizacion lees todos los mensajes otra vez y los vuelves a colocar en la ventana
Código
$('#contenedor').empty().append( content );
Podrias simplemente llevar un registro de cual es el ultimo mensaje recivido por el usuario X y en el SQL del chat solo pedir los mensjaes que sean mayor que el ultimo dato mandado y listo,
Un buen lugar para guardar ese dato es en la cookie o en el session del php aunque opciones hay muchas. puedes delegarlo al cliente y que te lo mande con cada consulta ajax y actualizar la variable desde el javascrip cada que reciva elementos nuevos.
Entonces al recibitlos puede hacerles append normal sobre el div sin necesidad de actualizarlo todo.
Saludos