IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Stats online en ajax avec des timer ou autres


Sujet :

AJAX

  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 293
    Par défaut [AJAX] Stats online en ajax avec des timer ou autres
    Bonjour,

    j'ai beaucoup d'idée en php mais je bloque sur un truc que j'arrive pas a comprendre comment il faudrait faire: j'aimerais créer un systeme de "Ajax Online"

    en gros imaginons qu'il y a 2 personnes qui vont sur le site , et là je voudrais que le ajax enregistre un truc pour dire que les 2 personnes sont online , j'aimerais qu'il ne sont plus "online" dés qu'ils quittent le site !



    donc j'ai essayer de faire ceci et sa marche impeccable avec 1 personne, ou 2 , ou meme avec le 3 , 4 , 5 ,6 ...,10 eme visiteurs mais attention au 50-60 eme visiteurs (60 connectés) le site il rame trés trés trés fort car le mysql est trop surcharger et donc le site ensuite il s'ouvre 3heures aprés

    donc si quelqu'un a une idée pour faire ce systeme "d'onlineAjax sans faire lagué mysql " bein je le remercie !!!


    je montre les scripts que j'ai en ce moment , ils marchent vraiment trés bien (mais seulement pour 1 a 15 connectés) ( a partir de 50 connectés mysqal lag trés trés fort pour surcharge )

    les scripts:

    ce script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $id_session = uniqid((double)microtime()*1000000, true);
    mysql_query("INSERT INTO test VALUES('', '$id_session', '$_POST[pseudo]', '0', '0')");
    le 0 ,c'est le travail de mysql ,car dans la structure j'ai pas mis "INT" ni "Text" ni "Vachar" mais un "Time" pour ne pas faire de time() en php, je voulais voir si il y avait pas de lag mais il y a toujours du lag


    le 2eme script , il faut le mettre sur la page (page de tchat pour moi) pour voir si la personne est connecté et pour que le javascript refresh ce fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script language=javascript>
     
    function displaySessionRefreshBase()
    {
    _RIMAGE = new Image(1, 1);
     _RIMAGE.src = "/session2.php?session=<?php echo $id_session;?>&timer=" + Math.round(Math.random() * 1000000000);
     
    }
     
    window.setInterval(displaySessionRefreshBase, 1000);
     
    </script>
    </body>
    </html>

    dans session2.php il y a ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?
    header('Content-type: text/html; charset=iso-8859-1');
    header('Cache-Control: no-cache, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    include("la_bdd.php"); 
    mysql_query("UPDATE test SET timer='$_GET[timer]' WHERE session='$_GET[session]'");
    ?>


    donc tout ce systeme marche bien mais mysql lag de + en + fort dés qu'il y a 50 connectés .... comment il faudrait faire pour pas que sa lag ?

    comment ils font les sites de pro pour pas que sa lag ?


    Merci d'avance

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Augmente le temps de polling, au lieu de mettre toutes les secondes, mets toute les 10s, ou toutes les minutes par exemple, tu verras que tu vas drastiquement réduire ton nombre de requetes à ta base.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 293
    Par défaut
    en effet depuis mercredi j'ai mis a 5 minutes : 5 * 60 * 1000 a la place de 1 seconde et sa rame plus du tout !
    et aussi a la place de timer='$_GET[timer]' (du fichier session2.php) j'ai mis ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $timer = time();
    mysql_query("UPDATE test SET timer='$timer' WHERE session='$_GET[session]'");

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/08/2011, 11h24
  2. Problème avec des Timers
    Par pat77176 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/12/2009, 11h03
  3. Problème avec des timers
    Par haraelendil dans le forum Débuter
    Réponses: 2
    Dernier message: 08/07/2008, 14h41
  4. probleme avec des tableaux et autres
    Par raphy75 dans le forum Langage
    Réponses: 6
    Dernier message: 11/04/2007, 20h41
  5. [AJAX] saisie automatique en rapport avec des données mysql
    Par redwire dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 01/10/2006, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo