Bonjour,
J'aime à développer pleins de petites applications et actuellement je suis sur un nième chat ajax.
Aucun soucis côté dev, mais question performance j'aimerai des avis.
Voici le fonctionnement acutel du script :
- Une page index avec la fenetre du chat (fenetre de discussion, liste des connectés ~ IRC like)
- Un script jQuery ($.ajax) qui interoge un chat.php toutes les n milisecondes et injecte les nouvelles données
- Une page chat.php qui maintient la connexion, retourne la liste des utilisateurs en ligne, retourne les nouvelles lignes de chat
- Une base mysql avec deux tables; les utilisateurs en lignes, le lignes de chats
Tout ceci fonctionne sans problème.
Cependant j'ai un soucis notable de performance.
En effet, malgré le fait de vider le contenu la réponse de ma requette ajax après utilisation, le cout en mémoire ne fait que croitre.
Si par exemple, on arrive sur la page et que celle-ci coute 50 Mo de mémoire vive, au bout d"une heure et plusieurs milleurs de requettes ajax, on arrive vite à des 250, 300Mo de mémoire dégustée par le navigateur qui garde en mémoire une trace de chaque requette. Et ce, si l'on ne reste qu'une heure... imaginez pour une nuit complète à garder la fenetre ouverte...
Après moultes recherches pour pallier à ce problème il est apparu qu'il n'était pas possible de supprimer completement les traces en mémoire d'une requette ajax après s'en être servi.
Donc j'en viens à me demander s'il existe d'autres solutions que celle ci.
Peut-on pallier à ce problème directement ?
Ou alors existe-t-il d'autre façon (en Javascript/PHP toujours) de faire ce type de chat ?
Est-il possible de maintenir la connexion Ajax simplement ouverte ?
D'avance merci pour vos précieux conseils.