Partage
  • Partager sur Facebook
  • Partager sur Twitter

Recharger un Div d'une page seulement

Recharger un Div d'une page seulement

    20 août 2010 à 18:45:51

    Bonjour, cela fait exactement 11 jours que je cherche une solution à mon problème, sur google surtout, et aucune réponse qui me satisfait :(

    En effet, je cherche un mini code en javascript ou en Ajax [je ne programme qu'en php (pas de POO)] et donc j'ai pleins de problèmes au niveau d'Ajax :(

    La chose que je cherche est simple à décrire :
    Je cherche à recharger un Div chaque 5 sec pour le mettre à jour sans recharger la page entière, voila.

    J'ai trouvé ce script sur un site du net, mais apparemment si je mets un rechargement à chaque 5 sec, après ça recharge à chaque 2.5 sec, puis 1.25 sec, ... sous forme d'une boucle :

    Voici le code inséré dans ma page essai.php :
    <head>
    <script type='text/javascript'>
    function reloadtitle()
                   {
                    var xhttpRequest=null;
       
        if (window.XMLHttpRequest) {
            xhttpRequest = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {
            xhttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
        }
        //on définit l'appel de la fonction au retour serveur
    xhttpRequest.onreadystatechange = function()
    {
         if(xhttpRequest.readyState==4)
         {
             // C'est ici que tu dois récupérer le résultat de la requète.
    document.getElementById('title').innerHTML = xhttpRequest.responseText; 
              setInterval('reloadtitle()',5000); // la fonction va s'actualiser toute les secondes....
         }
    };
          //on appelle le fichier currentsong.xsl
        xhttpRequest.open('GET','jj.php', true);
        xhttpRequest.send(null);
    }       
    </script>
    </head>
    <body onLoad="reloadtitle();">
    
    Gregoryyyy <br>
    <div id="title"></div>
    
    </body>
    


    Ma page jj.php contient un chiffre. Exemple : 25.
    Si je change le chiffre 25 par 24, je dois normalement avoir dans ma page essai.php (où est affiché le code que je viens de vous insérer en haut) 24 !

    Merci d'avance pour votre aide Zéros !
    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2010 à 19:56:00

      Lis le tutoriel sur les bonnes pratiques JS.
      Pour les autres : son problème vient du fait qu'il lance plusieurs timers.
      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2010 à 19:59:37

        N' y a t-il pas une possibilité de m'aider à le corriger ? (diminuer les timer) ? Car je ne vois pas d'où ça peut venir
        • Partager sur Facebook
        • Partager sur Twitter
          20 août 2010 à 20:09:49

          Lis le tutoriel sur les bonnes pratiques, ton code sera déjà beaucoup plus rapide.

          Utilise ce code en regardant la console. Tu vas avoir des ajouts de messages de plus en plus rapide. Cherche pourquoi.
          function f() {
              console.log(new Date());
              window.setInterval(f, 1000);
          }
          f();
          
          • Partager sur Facebook
          • Partager sur Twitter
            20 août 2010 à 20:15:43

            En modifiant setInterval
            Par : setTimeout

            Je vois que mon problème est réglé !
            Mais je ne suis pas sûr du résultat

            Merci 'xavierm02' de bien avoir tenter de m'aider, mais là j'apprends le php et je ne peux pas apprendre au même temps du Javascript sinon j'aurai pleins de problèmes :euh: C'est ce qui m'inquiète.
            • Partager sur Facebook
            • Partager sur Twitter
              20 août 2010 à 21:41:19

              Ouaip le problème venait du fait que ta fonction relançait un interval et donc qu'il y en avait de plus en plus...
              Mais lis ce tutoriel : http://www.siteduzero.com/tutoriel-3-1 [...] vascript.html
              Je voulais pas te donner la réponse direct en éspérant que t'irais faire un tour mais bon...
              Genre tes setTimeout('fct()') , tu les transforme en setTimeout(fct) .
              • Partager sur Facebook
              • Partager sur Twitter
                22 août 2010 à 13:34:56

                Citation : xavierm02

                Lis le tutoriel sur les bonnes pratiques, ton code sera déjà beaucoup plus rapide.

                Utilise ce code en regardant la console. Tu vas avoir des ajouts de messages de plus en plus rapide. Cherche pourquoi.

                function f() {
                    console.log(new Date());
                    window.setInterval(f, 1000);
                }
                f();
                

                Euh. Attention. setInterval c'est le mal. Surtout quand tu le relances tout le temps comme ça.
                setTimeout serait mieux là. Mais bon, l'idéal serait surement ça:
                function f() {
                    console.log(new Date());
                }
                window.setInterval(f, 1000);
                


                Sinon niveau documentation javascript il y a de quoi faire sur le site du zéro mine de rien ;) .

                Tu peux te tourner aussi du côté des frameworks.
                Genre mootools ou jquery qui te simplifieront la vie (en intégrant parfois de très bons principes de programmation).
                • Partager sur Facebook
                • Partager sur Twitter
                Venez sur Zeste de Savoir, on est bien :-) . Mon tuto PHPSpec.

                Recharger un Div d'une page seulement

                × 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