Partage
  • Partager sur Facebook
  • Partager sur Twitter

Contrôler le moment où sera charger un script javascript

    30 juillet 2009 à 15:51:37

    Bonjour,

    J'aimerai savoir si il existait un moyen de charger un script js YY secondes après le chargement d'une page.

    Exemple: J'ai le code suivant :

    <script type="text/javascript" src="../js/lib1.js"></script>
     <script type="text/javascript" src="../js/lib2.js"></script>
     <script type="text/javascript" src="../js/lib3.js"></script>
     <script type="text/javascript" src="../js/lib4.js"></script>
    


    Comment je fais pour dire :

    Citation : Navigateur

    Je veux que le script lib3.js soit charger 0,5 secondes après le chargement de ma page.



    Je ne veux pas que mon script aille en mémoire au chargement de ma page puis qu'il prenne effet 0,5 secondes après ! Je veux qu'il soit charger que 0,5 secondes après. De ce fait si je charge ma page et que je supprime le fichier lib3.js 0,2 secondes après le chargement eh bien le contenu de lib3.js ne sera pas prit en compte vu que le fichier ne sera pas chargé.



    Comment je fais pour dire :

    Citation : Navigateur

    Je veux recharger (pas ma page) juste le script lib4.js par exemple suite à un événement onclick=""



    Ainsi si je modifie le contenu de lib4.js je pourrais modifier les événements de ma page sans avoir besoin de recharger ma page.


    Thanks
    • Partager sur Facebook
    • Partager sur Twitter
      30 juillet 2009 à 15:56:52

      Citation : mr. bob

      Citation : Navigateur

      Je veux que le script lib3.js soit charger 0,5 secondes après le chargement de ma page.



      window.onload=function(){
          setTimeout(
              function(){
                  var script=document.createElement('script');
                  script.src='lib3.js';
                  document.getElementsByTagName('body')[0].appendChild(script);
              },
              500
          );
      }
      


      Citation : mr. bob

      Citation : Navigateur

      Je veux recharger (pas ma page) juste le script lib4.js par exemple suite à un événement onclick=""



      objetDOM.onclick=function(){
          var i=0,
          scripts=document.getElementsByTagName('script'),
          count=script.length,
          script=document.createElement('script');
          while(i<count){
              if(/lib4.js$/.test(scripts[i].src)){
                  document.body.removeChild(scripts[i]);
                  i=count;
              }else{
                  i++;
              }
          }
          script.src='lib4.js';
          document.body.appendChild(script);
      }
      
      • Partager sur Facebook
      • Partager sur Twitter
        30 juillet 2009 à 15:59:19

        génial merci j'essai de suite :)
        • Partager sur Facebook
        • Partager sur Twitter
          30 juillet 2009 à 16:06:37

          J'ai modifié le second code comme j'ai vu qu'il pouvait être amélioré. Vérifie que tu as le bon :)
          • Partager sur Facebook
          • Partager sur Twitter
            30 juillet 2009 à 16:16:31

            J'ai essayé ceci: (deuxiéme script)


            <script>
                  function toto(){
                        var i=0,
                        scripts=document.getElementsByTagName('script'),
                        count=script.length,
                        script=document.createElement('script');
                
                        while(i<count){
                              if(scripts[i].src=='lib4.js'){
                                    document.getElementsByTagName('body')[0].removeChild(scripts[i]);
                                    i=count;
                              }
                              else{
                                    i++;
                              }
                       }            
                       script.src='lib4.js';
                       document.getElementsByTagName('body')[0].appendChild(script);
                  }
            </script>
            


            <a onclick="toto();">cliquez ici</a>
            


            Je modifie le contenu de lib4.js en cours de route mais on dirait que ca ne marche pas :euh:

            lib4.js contient :

            alert('test again');
            


            Sinon le 1er script marche impécable
            • Partager sur Facebook
            • Partager sur Twitter
              30 juillet 2009 à 16:19:49

              faute de frappe :honte:

              Remplace count=script.length par count=scripts.length

              J'ai testé, ça marche :)
              • Partager sur Facebook
              • Partager sur Twitter
                30 juillet 2009 à 16:24:32

                Tu es trooooop fort ^^:p

                Thanks

                Ps :
                - tu as de bon site a me conseiller sur tout ce qui technologie ajax ?
                - entre mootols et jquery tu me conseilles ?
                • Partager sur Facebook
                • Partager sur Twitter
                  30 juillet 2009 à 16:25:02

                  J'ai remodifié la deuxième fonction (y'avait encore un bug, maintenant ça marche nickel)

                  De bon site pour l'ajax, y'a le site du zero :p

                  Pour la librairie, ça dépend de tes besoins. Les bibliothèques sont bien pour des effets kikoo mais c'est tout. Pour le reste, autant le faire soi même.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 juillet 2009 à 16:26:23

                    http://www.siteduzero.com/tutoriel-3-4 [...] vascript.html
                    Sinon moi j'aime faire mon code moi-même :p (= pas de librairies)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      30 juillet 2009 à 16:47:13

                      Remarque le second script ne fonctionne pas sur google chrome (enfin chez moi) mais ce n'est pas grave.
                      Si tu le modifie pour qu'il marche tant mieux sinon tampi ^^
                      • Partager sur Facebook
                      • Partager sur Twitter
                        31 juillet 2009 à 8:20:23

                        Sisi ça marche sous chrome, le seul truc c'est que chrome se sent obligé de mettre le js en cache et si on ne rafraichi pas la page, il recharge pas le js :)

                        Une solution serai de faire de ton js un fichier php avec pour entête la spécification de ne pas mettre le fichier en cache (j'ai testé sous chrome, ça marche)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 août 2009 à 11:04:41

                          Ok je vois ce que tu veux dire, ceci devrais faire l'affaire :


                          <?php
                          
                                /*
                                *     Fonction qui empêche la mise en cache des données
                                *     Empêcher la mise en cache des pages avec PHP
                                *
                                *     La fonction doit-être appellée avant toute balise HTML,
                                *     espace blanc, echo(), print()...
                                *
                                */
                          
                                function empecherLaMiseEnCache(){
                                      header('Pragma: no-cache');
                                      header('Expires: 0');
                                      header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
                                      header('Cache-Control: no-cache, must-revalidate');
                                }
                          
                          ?>
                          
                          • Partager sur Facebook
                          • Partager sur Twitter
                            1 août 2009 à 12:44:18

                            Sans oublier un <?php header('Content-Type: text/javascript'); ?> pour préciser que c'est un document javascript.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Contrôler le moment où sera charger un script javascript

                            × 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