Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script de rafraichissement automatique

Sujet résolu
    23 décembre 2014 à 0:24:47

    Bonjour, Bonsoir,

    Sur mon site, j'ai une zone avec un query qui donne le statut de mon serveur de jeu ainsi que la liste des joueurs connectés. Je voudrais savoir si il était possible de  rafraichissement automatiquement par exemple tout les 30 secondes pour que la liste des joueurs s'actualise.

    Merci d'avance

    _______

    Bonne faites de fin d'années a vous.

    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2014 à 0:33:29

      T'as une fonction setInterval qui permet d'appeler une fonction tous les x milisecondes (pour toi ça sera 30000). Et t'as AJAX qui permet de faire des requêtes à un serveur (par exemple une page PHP) qui te permettra d'actualiser les infos.

      Demande si t'as besoin d'aide quelque part.

      • Partager sur Facebook
      • Partager sur Twitter
      "If debbugging is the process of removing bugs, then programming must be the process of putting them in." (Edsger Dijkstra)
        23 décembre 2014 à 1:59:43

        Pourrais tu me donner le script sachant que je peu mettre cette fonction sur 2 scripts différents :

        <?php
        define( 'MQ_SERVER_ADDR', '188.165.212.46' );
        define( 'MQ_SERVER_PORT', 29386 );
        define( 'MQ_TIMEOUT', 1 );
        
        require __DIR__ . '/MinecraftQuery.class.php';
        
        $Query = new MinecraftQuery( );
        
        try
            {
        		$Query->Connect( MQ_SERVER_ADDR, MQ_SERVER_PORT, MQ_TIMEOUT );
        	}
        	catch( MinecraftQueryException $e )
        	{
        		$Error = $e->getMessage( );
        	}
           
        if(isset($Error)){
        		echo '<center>';
        		echo '<font color="red" size="6" >Serveur hors ligne</font><br/>';
        		echo '</center>';
        	}else{
        		echo '<center>';
                echo '<font color="green" size="6">Serveur en ligne</font><br/>';
        		echo '</center>';
                if(($Info = $Query->GetInfo( )) != false){
        		echo '<center>';
                echo '<font size="1">Version du serveur : '; 
                echo $Info['Version'];
        		echo '</center></font>';
            
                echo '</br><font color="blue" size="3">Joueurs en ligne : </font>';
        		echo $Info['Players'];
                echo '/';
        		echo $Info['MaxPlayers'];
        		echo '</br>';
                if( ( $Players = $Query->GetPlayers( ) ) !== false ){
                    foreach( $Players as $Player ){
                    echo htmlspecialchars ( $Player );
        			echo '</br>';
                    }
                }
            }
        }
        ?>

        ou bien celui ci (include) :

        <?php
        	$fichier = file("http://xxxxxx.xxx.xxxxxxxxxxxxxx.xx/status.php");
        	$total = count($fichier);
        	for($i = 0; $i < $total; $i++) 
        	{
        		echo $fichier[$i];
        	}
        ?> 

        J'ai du faire un include car mon hébergeur web n'est pas compatible avec le serveur en question pour ce query

        Merci d'avance


        -
        Edité par Pierrozer 23 décembre 2014 à 2:01:35

        • Partager sur Facebook
        • Partager sur Twitter
          23 décembre 2014 à 10:18:43

          J'utilise jQuery pour l'AJAX, donc faut l'inclure avant d’exécuter le script.

          setInterval(function() {
            $.ajax({
              url: "http://monsite.com/script.php",
            }).done(function(data) {
              $('#id_de_la_div').html(data);
            });
          }, 5000);

          Remplace l'url par le premier script que tu m'as donné (tel quel, sans balise html ou autres autour, juste le code que tu m'as donné). Et remplace id_de_la_div par l'id de la div où tu veux que le code soit inséré (faut garder le #, c'est comme du css). J'ai mis toutes les 5s (5000) mais tu peux changer.

          Code non testé.

          • Partager sur Facebook
          • Partager sur Twitter
          "If debbugging is the process of removing bugs, then programming must be the process of putting them in." (Edsger Dijkstra)
            23 décembre 2014 à 10:39:21

            il y'a aussi les Server Sent Events qui permettent d'avoir les dernières mises à jour sans avoir à bombarder le serveur de requêtes toutes les x secondes, s'il y' a beaucoup de joueurs connectés ton serveur, imagine la charge du serveur
            • Partager sur Facebook
            • Partager sur Twitter
              23 décembre 2014 à 10:47:03

              Quands je fais comme ça rien ne s'affiche. L'emplacement reste blanc comme si il n'y avais pas de script.
              • Partager sur Facebook
              • Partager sur Twitter
                23 décembre 2014 à 10:53:52

                Tu as inclus jQuery ? Tu as ouvert la console ? Si oui, que t'affiche-t-elle comme erreur ?
                • Partager sur Facebook
                • Partager sur Twitter
                  23 décembre 2014 à 10:56:44

                  C'est pas compatible IE, et s'il a beaucoup de monde c'est pas une requête comme ça qui fera que le serveur tient le coup ou pas. ^^^Et j'ai donné la manière la plus simple pour lui, après oui tu peux pousser et faire du websocket avec un serveur node js (compatible tout navigateur).

                  Ouvre la console JS (CTRL+MAJ+I) et dis moi si y'a des erreurs ou autres, j'ai peut-être fait une boulette.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  "If debbugging is the process of removing bugs, then programming must be the process of putting them in." (Edsger Dijkstra)
                    25 décembre 2014 à 14:57:10

                    <script>setInterval(function() {
                      $.ajax({
                        url: "http://minesharp.web.minecraft-mania.fr/status.php",
                      }).done(function(data) {
                        $('#stat').html(data);
                      });
                    }, 5000);</script>
                     
                     
                     
                    <div id="stat"/></div>




                    Voila la page ou j' l'est mis : http://www.minesharp.fr/test.php

                    Et je ne vois pas d'erreurs dans la console.

                    -
                    Edité par Pierrozer 25 décembre 2014 à 15:04:50

                    • Partager sur Facebook
                    • Partager sur Twitter
                      26 décembre 2014 à 17:38:40

                      Quand je te demande si tu as inclus jQuery ça serait bien que tu considères ma question ça t'éviterais de chercher pour rien.

                      Dans la page que tu nous montre tu n'as rien écris d'autre que le morceau de code qui t'a été présenté et qui fait pourtant appel à jQuery. Donc si la lib n'est pas incluse c'est sur que ça ne fonctionnera pas...

                      view-source:http://www.minesharp.fr/test.php

                      En plus c'est quoi ça type='text/rocketscript' ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 décembre 2014 à 13:40:26

                        Fieldset a écrit:

                        Quand je te demande si tu as inclus jQuery ça serait bien que tu considères ma question ça t'éviterais de chercher pour rien.

                        Dans la page que tu nous montre tu n'as rien écris d'autre que le morceau de code qui t'a été présenté et qui fait pourtant appel à jQuery. Donc si la lib n'est pas incluse c'est sur que ça ne fonctionnera pas...

                        view-source:http://www.minesharp.fr/test.php

                        En plus c'est quoi ça type='text/rocketscript' ?

                        Salut,

                        Comment inclure la lib jQuery?

                        Et je ne vois nulle part
                        type='text/rocketscript'


                        • Partager sur Facebook
                        • Partager sur Twitter
                          27 décembre 2014 à 13:43:19

                          j@meskoug@r a écrit:

                          il y'a aussi les Server Sent Events qui permettent d'avoir les dernières mises à jour sans avoir à bombarder le serveur de requêtes toutes les x secondes, s'il y' a beaucoup de joueurs connectés ton serveur, imagine la charge du serveur


                          Je n'ais pas enormémént de monde sur mon serveur mais ça m'interesse quands meme. Qu'est ce que c'est?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 décembre 2014 à 17:33:36

                            Voir cette page de w3schools.com, avec un exemple fonctionnel (try It yourself).

                            Un défaut ces évènements ne sont pas supporté par Internet explorer !

                            -
                            Edité par 007julien 27 décembre 2014 à 17:34:55

                            • Partager sur Facebook
                            • Partager sur Twitter
                              27 décembre 2014 à 20:30:10

                              Va sur le site de jQuery et lis la doc, tout y est expliqué.

                              Et dans le code sur ta page test, tu as le code source suivant :

                              <script type="text/rocketscript">setInterval(function() {
                                $.ajax({
                                  url: "http://minesharp.web.minecraft-mania.fr/status.php",
                                }).done(function(data) {
                                  $('#stat').html(data);
                                });
                              }, 5000);</script>
                              <div id="stat"/>

                              Tu vois bien qu'il y a rocketscript dans l'attribut type de javascript.

                              Tu n'as aucune balise html aucune balise head et aucune balise body lol

                              Et bien sûr tu n'as pas inclus jQuery. Ca fait quand même beaucoup d'erreurs c'est pas étonnant que ça ne fonctionne pas :D

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Script de rafraichissement automatique

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown