CHAT cherche une solution pour éviter rafraîchissement visuel - Programmation
Marsh Posté le 14-02-2002 à 08:24:21
up SVP ???
Vous voulez des précisions ? un bout de code pour mieux comprendre ?
Marsh Posté le 20-08-2002 à 01:28:16
tilateur a écrit a écrit : dhtml |
Ca c'est de la réponse utile, il fait quoi la a ton avis? Du VB
Bon, si tu as un peu de courage, tu devrais proposer ton chat en 2 versions, celle que tu as qui rame probablement fort, ou une version plus sympa pour le serveur.
Le principe est simple, si ton serveur fait pas de cache ou de compression (mod_gzip, etc, etc), tu peux envoyer la page du chat au fur et à mesure, du genre
<?
while (!Terminated()) //Y a une fonction pour savoir qu'il a canceller, a toi de la retrouver
{
$st = GetNewLine(); //Fonction qui te file la nouvelle ligne a afficher et qui attends si y en a pas
echo("<br />".$st);
flush();
}
?>
Non seulement il refresh plus, mais en plus il voit la ligne arriver directement.
Si c'est pas magnifique ca
Sinon pour ton problème, y a moyen de scroller la fenêtre en Javascript, je sais plus comment mais c'est possible, donc tu peux résoudre le truc comme ca déjà.
Marsh Posté le 13-02-2002 à 17:04:31
Voilà, je fais un chat en ASP (pareil en PHP) et pour ne pas que l'utilisateur voit la page se rafraîchir, je passe par du javascript.
Voilà le principe, j'ai sur mon chat 4 frames:
-une pour les personnes connectes (on s'en fou)
-une pour écrire un message (elle se contente de l'écrire dans la BDD, on s'en fou)
-une frame invisible. Cette dernière se rafraichie toutes les 5 sec. Elle vérifie si de nouveaux messages ont été ajoutés dans la BDD et dans ce cas, le message est envoyé via javascript à la 4ème frame qui affiche le message.
Cette technique (qui m'est inspirée de Mara's dad ) marche très bien.
Le prob que j'ai est au niveau de la mise en page.
Comme les messages sont ajoutés comme ceci:
window.parent.frames["messages"].document.write("coucou" )
les messages sont affichés à la suite dans la frame. C pas terrible niveau présentation, au niveau de l'alignement et l'ascenseur ne redescent pas à chaque message lorsque la frame est plus grande que l'écran. J'aimerais bien d'ailleurs afficher les messages de bas en haut.
Mara's dad utilise un tableau qu'il fournit en paramètre à travers une fonction javascript et ensuite il peut modifier le contenu avec les méthodes innerHTML ou outerHTML mais ça ne marche pas avec Netscape 4.79
Auriez vous une autre idée ?
Apparement sur www.phpheaven.com/chat ils ont trouvés une solution mais je ne vois pas comment ils ont fait ?
Un coup de pouce SVP ?