Partage
  • Partager sur Facebook
  • Partager sur Twitter

Include en Javascript

Index.php qui ne recharge pas ?

    5 août 2009 à 13:13:29

    Salut à tous,

    Voilà, alors je suis sur un site, et donc sur l'index.php j'include les pages du contenu au milieu quand on clique sur les liens, jusque-là tout est normal.

    Sauf que je voulais mettre de la musique sur le site, un petit lecteur en flash, mais le problème, c'est que quand on change de page, ça recharge le site en entier, et donc le lecteur flash en même temps.

    Donc, je cherche une solution, d'inclure ces pages non pas par PHP lorsqu'il détecte un $_GET, mais par Javascript (Ajax plutôt je pense). Ce sont des pages en PHP, et aussi, il est important de savoir que l'on puisse aller sur http://www.monsite.com/en ou /fr pour changer la langue.

    Donc voilà, ça m'a pas l'aire vraiment possible a première vu, mais peut-être vous auriez la solution ? Mélangez du ajax pour l'include des pages, tout en ayant du php pour le changement de langue... ^^

    Voilà, merci et à bientôt.
    • Partager sur Facebook
    • Partager sur Twitter
      5 août 2009 à 17:18:17

      dépendemment de l'ampleur de ton site, une solutions simple serait de mettre le contenu du site dans un iframe, et de recharger seulement cette parti, comme ça l'entête ne se rechargerait jamais.. c'est pas très jolie, mais ça fonctionne...

      Sinon, tu parles de faire tout ton site en ajax pour que la page ne se rafraichisse jamais... ça ne me semble pas être vraiment faisable... le tout risque d'être très long et fastidieux à coder et pas très coérent pour l'utilisateur. Le risque de bug est alors très élevé.
      • Partager sur Facebook
      • Partager sur Twitter
        5 août 2009 à 18:17:48

        Citation : slyman

        Sinon, tu parles de faire tout ton site en ajax pour que la page ne se rafraichisse jamais... ça ne me semble pas être vraiment faisable... le tout risque d'être très long et fastidieux à coder et pas très coérent pour l'utilisateur. Le risque de bug est alors très élevé.


        Mais c'est faisable, et cela résoudrait son problème. Je suppose que c'est ce que fait Deezer dans sa nouvelle version non ?

        Pour ce qui est du "long et fastidieux à coder", en utilisant une bibliothèque qui simplifie les transferts AJAX, comme JQuery, plutôt que d'utiliser des XmlHttpRequest ça devient moins tordu.

        Moi le plus gros inconvénient que je vois, c'est au niveau de la compatibilité ... le JavaScript on a beau dire, quand on ne maitrise pas à fond, on fait parfois des trucs bizarres qui ne marchent pas partout. Sans compter que niveau référencement et accessibilité, c'est surement pas bien cool.

        Sinon y'a bien la possibilité d'ouvrir le lecteur en pop-up mais bon les pop-up hein ...
        • Partager sur Facebook
        • Partager sur Twitter
          5 août 2009 à 18:32:48

          Euh, en ce qui me concerne, la méthode de l'iframe me semble être la plus abordable. C'est vrai que c'est pas très joli ( jamais je ne mettrai un truc pareil sur un site.. ) mais c'est vraiment facile a mettre en œuvre...

          AJAX, c'est beau, j'aime, mais alors coder un site entier... faut vraiment que le site en vaille la peine, surtout si les pages de ton site ne suivent pas un même model... Il te faudra en effet reconstruire toutes tes balises a coup de createElement, appendChild, etc... effectivement c'est faisable, mais alors bonjour le travail si ton site a plus de 5 pages...

          • Partager sur Facebook
          • Partager sur Twitter
            5 août 2009 à 18:40:32

            Citation : Abraxasz

            Euh, en ce qui me concerne, la méthode de l'iframe me semble être la plus abordable. C'est vrai que c'est pas très joli ( jamais je ne mettrai un truc pareil sur un site.. ) mais c'est vraiment facile a mettre en œuvre...

            AJAX, c'est beau, j'aime, mais alors coder un site entier... faut vraiment que le site en vaille la peine, surtout si les pages de ton site ne suivent pas un même model... Il te faudra en effet reconstruire toutes tes balises a coup de createElement, appendChild, etc... effectivement c'est faisable, mais alors bonjour le travail si ton site a plus de 5 pages...



            Euh, désolé mais ce que tu dis me semble complétement faux ... à part pour l'iframe qui est effectivement vraiment moche niveau standards !

            Tu n'es pas obligé de créer toutes tes balises avec des fonctions JavaScript, il suffit que AJAX retourne un code déjà tout prêt.
            • Partager sur Facebook
            • Partager sur Twitter
              5 août 2009 à 18:50:45

              Ah, ben je l'ignorais ! Ce que je faisais jusqu'à présent c'est que je faisais un XMLHttpRequest sur une page php qui générait qui creait une page XML que je récupérais avec une fonction callback. Apres quoi je faisais une boucle qui interprétait les balises du document XML.

              Tu vas me dire, je suis pas encore super a l'aise avec AJAX... donc je vais m'y replonger un peu, parce que ce que tu m'as dit m'intéresse pas mal !

              Et puis désolé a keneth de t'avoir induit en erreur
              • Partager sur Facebook
              • Partager sur Twitter
                5 août 2009 à 18:55:49

                Ta démarches est tout à fait bonne ... mais je persiste à dire que tu n'as pas besoin de toutes ces fonctions JS pour faire ça. C'est dans l'utilisation des données XML du callback que tu dois te prendre la tête pour rien mon pauvre ! :p

                Il suffit qu'il ait structuré sa page en quelques div et c'est bon, il n'y a plus qu'à les modifier ... XmlHttpRequest, c'est bien, c'est beau, c'est propre, ça permet de bien piger le fonctionnement d'AJAX ... mais après tu chopes la bilbio JQuery et ça va 5 fois plus vite ! Je sais pas ce qu'en pensent les autres, niveau compatibilité tout ça. C'est propre ?

                En tout cas moi j'l'ai adopté ...
                • Partager sur Facebook
                • Partager sur Twitter
                  5 août 2009 à 19:05:11

                  Bah sans Jquery, tu fais ta requête ajax, tu récpères le code "central" (Je veux dire de la partir dynamique du site) un petit innerHTML et pouf c'est bon.


                  Citation

                  quand on ne maitrise pas à fond, on fait parfois des trucs bizarres qui ne marchent pas partout.



                  Malheureusement vrai (On en voit trop sur le SdZ) ¬_¬
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 août 2009 à 19:09:31

                    Ah, JQuery, j'ai vu ca dans plusieurs tuto mais je n'ai jamais eu l'occasion de m'y plonger. Et puis en général je préfère faire les choses a la main ( même si c'est parfois pénible voire très pénible :p ) afin de toujours contrôler ce que je fais.

                    Ceci dit je pense que tu as raison, mon utilisation du XMLHttpRequest n'est pas optimisée :o . Il doit y avoir moyen de m'epargner un peu de sueur !!! Donc il va falloir que je m'y plonge plus en profondeur...

                    Pour le innerHTML, j'ai lu je ne sais plus trop ou qu'il fallait faire gaffe avec... Et puis je ne suis pas sur que les balises que tu crées dans ton innerHTML soient ajoutées a l'arbre DOM... donc si tu as des modifications a faire... enfin c'est a vérifier, je ne suis pas sur de ca..
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 août 2009 à 19:10:12

                      Sauf que je trouve que JQuery facilite grandement la partie "tu récupères le code central".

                      Sinon +1 pour le innerHTML :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 août 2009 à 19:21:26

                        Citation : Abraxasz

                        Pour le innerHTML, j'ai lu je ne sais plus trop ou qu'il fallait faire gaffe avec... Et puis je ne suis pas sur que les balises que tu crées dans ton innerHTML soient ajoutées a l'arbre DOM... donc si tu as des modifications a faire... enfin c'est a vérifier, je ne suis pas sur de ca..




                        T'as surtout mal lu, ou alors lu des conneries =°

                        innerHTML c'est: Plus rapide, plus facile, et aussi efficace.
                        Le seul truc qui "gène" avec innerHTML, c'est qu'on supprime les évènements attaché dynamiquement aux objets à l'intérieur du quel on insère du code. (=> Ne gène quasiment jamais sauf en de rare occasions)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 août 2009 à 19:26:03

                          Citation : Tiller


                          T'as surtout mal lu, ou alors lu des conneries =°



                          Ah, c'est pas impossible. Je te cache pas que ca m'arrangerais aussi, parce que les CreateElement c'est pas super pratique...

                          Mais dans ce cas je ne comprends pas l'utilisation que l'on en fait ?
                          (A part donc pour conserver les proprietes dynamiques attachees ) :euh:
                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 août 2009 à 19:33:10

                            Citation : Abraxasz

                            Mais dans ce cas je ne comprends pas l'utilisation que l'on en fait ?


                            Personnellement, aucune. Mais bon j'ai pas fait énormément de JavaScript non plus. :-°
                            • Partager sur Facebook
                            • Partager sur Twitter
                              5 août 2009 à 19:39:08

                              Citation : Abraxasz

                              Mais dans ce cas je ne comprends pas l'utilisation que l'on en fait ?
                              (A part donc pour conserver les proprietes dynamiques attachees ) :euh:




                              De? createElement?

                              C'est pratique pour genre des fenêtres, ou des objets qui apparaissent et disparaissent.
                              On encore pour crée des objets avec des évènements.

                              Car entre faire:
                              mondiv.innerHTML = '<div id="unSuperdiv"></div>';
                              document.getElementById('unsuperdiv').onclick = function() {
                              	
                              };
                              
                              // Et:
                              ndiv = document.createElement('div');
                              ndiv.onclick = function() {
                              	
                              };
                              mondiv.appendchild(ndiv);
                              


                              Il est préférable de faire le second car plus rapide car on ne va pas chercher l'objet dans le DOM.
                              De plus, dans le second, on est pas forcé de créer une id pour le div.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 août 2009 à 19:52:10

                                Dac, bien compris ! Merci pour les explications, et je tacherai de mieux me renseigner la prochaine fois ;)

                                A plus,
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 août 2009 à 19:57:03

                                  Sujet résolu ? Si oui n'oublies pas d'utiliser le bouton approprié s'il te plait ...
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    6 août 2009 à 3:05:33

                                    C'est pas lui qui a créé le sujet ^^

                                    Le créateur n'a pas encore répondu à quoi que ce soit :p
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      6 août 2009 à 10:35:09

                                      Oh my god ! o_O

                                      Autant pour moi. :D
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Include en 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