chat php / ajax
12 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
chat php / ajax
Bonjour à tous,
J'ai un probleme avec un de mes scripts pour un chat en php/ajax.
Cela fonctionne parfaitement avec firefox mais pas avec explorer : la page des messages ne se recharge pas sous IE (elle doit se recharger toutes les 200ms) ...
est ce que quelqu'un voit d'ou cela peut venir ?
Merci a tous
Xp
J'ai un probleme avec un de mes scripts pour un chat en php/ajax.
Cela fonctionne parfaitement avec firefox mais pas avec explorer : la page des messages ne se recharge pas sous IE (elle doit se recharger toutes les 200ms) ...
- Code: Tout sélectionner
...
<script type='text/JavaScript'>
var xhr = null;
var n=0;
function getXhr(){
if(window.XMLHttpRequest)xhr = new XMLHttpRequest();
else if(window.ActiveXObject){
try{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}else{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
}
function init(){
loop();
}
function loop(){
//setTimeout('loop();',200);
setTimeout("mainLoop()",200);// recharge les messages
ShowPage();
}
function ShowPage(){
getXhr();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
document.getElementById('page1').innerHTML=xhr.responseText;
}
}
xhr.open("GET","loop.php",true);// page des messages
xhr.send(null);
}
</script>
</head>
<body onLoad="init()">
...
est ce que quelqu'un voit d'ou cela peut venir ?
Merci a tous
Xp
oui c'est là l'erreur :
xhr.open("GET","loop.php",true);// page des messages
problème de cache
IE reprends le fichier en cache, soit tu met sur ton script php un header pour indiquer au navigateur qu'il ne faut pas de cache
soit t'appelles
xhr.open("GET","loop.php?20060702171349",true);// page des messages
le numéro correspond a la date courante
(avec les milisecondes dans ton cas !)
Si ton script est au point j'en veux bien une copie, je m'en ferai un plaisir de l'améliorer et de le redistribué
xhr.open("GET","loop.php",true);// page des messages
problème de cache
soit t'appelles
xhr.open("GET","loop.php?20060702171349",true);// page des messages
le numéro correspond a la date courante
Si ton script est au point j'en veux bien une copie, je m'en ferai un plaisir de l'améliorer et de le redistribué
merci de ta reponse...
j'avais deja essayé :
mais cela permet juste de recharger la page correctement sous IE si on rafraichi (touche F5)
cela ne recharge pas automatiquement le contenu des messages puisque le time(); est en javascript dans la page...
j'avais deja essayé :
- Code: Tout sélectionner
<script type="text/javascript" language="javascript">
var xhr = null;
var n=0;
function getXhr(){
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else if(window.ActiveXObject){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}else{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
}
function init(){
loop();
}
function loop(){
setTimeout('loop();',5000);
ShowPage();
}
function ShowPage(){
getXhr();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
document.getElementById('page1').innerHTML=xhr.responseText;
}
}
xhr.open("GET","loop.php?<? echo time(); ?>",true);
xhr.send(null);
}
</script>
mais cela permet juste de recharger la page correctement sous IE si on rafraichi (touche F5)
cela ne recharge pas automatiquement le contenu des messages puisque le time(); est en javascript dans la page...
en fait DMX avait raison :
pour empecher le cache IE et ca marche... sur Firefox et IE
mon chat est un peu spécial car seul les membres (identifiés via un cookie) peuvent y accéder, sans besoin de se s'identifier une nouvelle fois
les visiteurs ne peuvent que voir les messages et doivent s'enregistrer sur le site pour participer
si ca t'interesse, je peux poster les fichiers...
- Code: Tout sélectionner
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
pour empecher le cache IE et ca marche... sur Firefox et IE
mon chat est un peu spécial car seul les membres (identifiés via un cookie) peuvent y accéder, sans besoin de se s'identifier une nouvelle fois
les visiteurs ne peuvent que voir les messages et doivent s'enregistrer sur le site pour participer
si ca t'interesse, je peux poster les fichiers...
Salut !
Moi je te conseil juste une petite astuce pour améliorer ton script.
> dans ta boucle infinie, qui recharge ta page, pourquoi ne pas faire une requete à chaque boucle pour voir si un nouveau message a été envoyé, et dans ce cas là seulement recharger la page, plutôt que de la recharger infiniement même si aucun n'a été posté...
Tu me suis ?
Fred
Moi je te conseil juste une petite astuce pour améliorer ton script.
> dans ta boucle infinie, qui recharge ta page, pourquoi ne pas faire une requete à chaque boucle pour voir si un nouveau message a été envoyé, et dans ce cas là seulement recharger la page, plutôt que de la recharger infiniement même si aucun n'a été posté...
Tu me suis ?
Fred
Re salut à tous,
Au fait je suis sur un projet personnel qui m'a pris comme ca pour m'occuper de développer un système de tchat IRC (sans serveur IRC bien sûr, c pour faire une comparaison) en PHP /AJAX / MYSQL qui je trouve est plutôt pas mal parti...
Dès sont avancement un peu plus poussé qu'il ne l'est maintenant, je vous posterai un exemple promis !
Au fait je bosses en PHP5 et orienté objet autant le faire savoir pour qui le PHP5 et et/ou l'orienté objet font peur
Au fait je suis sur un projet personnel qui m'a pris comme ca pour m'occuper de développer un système de tchat IRC (sans serveur IRC bien sûr, c pour faire une comparaison) en PHP /AJAX / MYSQL qui je trouve est plutôt pas mal parti...
Dès sont avancement un peu plus poussé qu'il ne l'est maintenant, je vous posterai un exemple promis !
Au fait je bosses en PHP5 et orienté objet autant le faire savoir pour qui le PHP5 et et/ou l'orienté objet font peur
scull a écrit:Mais sa doit commencer une bande passante de fou avec php ajax non ?
En fait, c'est ca que je me dit, donc je cherche à développer (mais c'est pour la suite quand tout tourne rond) un systeme de queue... comme un daemon pour imprimante, qui met les documletn en queue pour les envoyer un par un par un...
Mais ce sera pour la suite, en tout cas je trouve que mon début est positif
Tourne avec entre autre fonction d'information quand un new user entre dans le tchat, ainsi que quand un user du tchat quitte le tchat (ferme le navigateur ou change de page) (avec mise a jouir de la liste de users connecté en même tps) en temps réel
Et ce sans aucun rafraichiessement
A suivre...
- venomelektro
- WRInaute occasionnel

- Messages: 247
- Inscription: Jeu Juin 16, 2005 21:18
plutot que de remplacer le innerhtml de tout la discution tu devrais regarder du coté de prototype.js et de l objet "insert"
new Insertion.Top('ton-div-de-chat', les_nv_msgs );
de cette manière en faisant un controle par un timestamp tu ne récupère que les nouveaux messages.
new Insertion.Top('ton-div-de-chat', les_nv_msgs );
de cette manière en faisant un controle par un timestamp tu ne récupère que les nouveaux messages.
Dernière édition par venomelektro le Mar Déc 05, 2006 13:38, édité 1 fois.
scull a écrit:Mais sa doit commencer une bande passante de fou avec php ajax non ?
non, car on peut se contenter de n'ajouter que les nouveaux messages a chaque rafraichissement au lieu de tout le fil de discussion.
cf prototype.js
firefox fuite memoire
Bonjour,
j ai ecris un chat tres basique avec php / ajax qui fait une requete automatique tous les 5 secondes pour recuperer les nouveaux messages (mysql).
Tout fonctionne a priori SAUF le probleme memoire suivant :
Sous firefox (v1.5) j ai un probleme de memoire : le gestionnaire de taches processus m indique un processus qui consomme de plus en plus de memoire - et au bout de quelques heures firefox plante
Avez vous rencontré un meme probleme ?
Un extrait de mon code est ici
et puis pour l appeler :
Tout commentaire est super apprecié. J ai passé la journée pour chercher la fuite memoire et pas trouvé .... Par exemple, connaissez vous une extension firefox (a part firebug) qui me monitore la memoire utilisé (ou meme mieux : perdue ?)?
Pat
j ai ecris un chat tres basique avec php / ajax qui fait une requete automatique tous les 5 secondes pour recuperer les nouveaux messages (mysql).
Tout fonctionne a priori SAUF le probleme memoire suivant :
Sous firefox (v1.5) j ai un probleme de memoire : le gestionnaire de taches processus m indique un processus qui consomme de plus en plus de memoire - et au bout de quelques heures firefox plante
Avez vous rencontré un meme probleme ?
Un extrait de mon code est ici
- Code: Tout sélectionner
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4)
{
return(xhr_object.responseText);
}
else
{
return(false);
}
}
et puis pour l appeler :
- Code: Tout sélectionner
function getChatText(once) {
var time = new Date();
var secs = time.getTime();
document.forms['chatForm'].elements['chatbarText'].setAttribute('autocomplete','off');
var texte;
texte = file("getchatnew.php?bidon="+secs);
xhr_object = null;
document.getElementById('chattextnew').innerHTML = (texte);
if (once ==0)
{
setTimeout('getChatText(0);',5000);
}
}
Tout commentaire est super apprecié. J ai passé la journée pour chercher la fuite memoire et pas trouvé .... Par exemple, connaissez vous une extension firefox (a part firebug) qui me monitore la memoire utilisé (ou meme mieux : perdue ?)?
Pat
12 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Référencement et Web 2.0
- Google Web Toolkit, pour créer des applications en AJAX
- Yahoo Maps API
- Google rejoint le projet Open AJAX créé par IBM
- Fin de l'API Google Search SOAP
- Définition(s) du Web 2.0
- Google ferme l'API SOAP aux nouveaux développeurs
- Optimisation du référencement d'un site en AJAX
- Ajouter un moteur de recherche d'images sur son site
- Suggestions de requêtes dans Google News
- AJax, php et xml, probleme de variable php
- Formulaire et AJAX et PHP
- Livre do'r Ajax/PHP
- Problème AJAX / PHP (getXhr)
- Ajax /php problème de POST
- Développeurs AJAX ? PHP/MySQL
- [AJAX] ou [PHP & JAVASCRIPT] ?
- PHP, JavaScript + AJAX et variables
- ajax/php validation d'un formulaire
- Rafraichir variable php avec ajax
- Rafraichir variable php avec ajax si nécéssaire
- Session php / javascript et ajax sans doute
- chat ajax php fuite memoire firefox
- Ajax : Executer un code php via des boutons input
- Référencement site multilingue dynamique (ajax-php-mysql)
Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités






le forum