Partage
  • Partager sur Facebook
  • Partager sur Twitter

Quand utiliser jQuery?

pour un projet en cakePHP

    22 juillet 2010 à 2:34:05

    Bonjour à tous,

    J'arrive actuellement à 2 cas de figures, et je ne sais que choisir.

    1er cas :
    Une fois que le projet fait sous cakePHP est terminé, on entame une refonte complète du projet en utilisant jQuery.

    2e cas :
    Le développement de jQuery/cakePHP se fait en même temps.


    autre soucis, au niveau de la version 3 du projet, on envisage de refaire/d'optimiser l'ensemble du code.

    Ma question est donc la suivante :
    Est ce que le développement ultérieur de jQuery sur un projet finis sous cakePHP/PHP, pourrais engendrer des soucis ??


    Bref, entre choisir de développer en même temps ou plus tard, que me conseillez vous?
    • Partager sur Facebook
    • Partager sur Twitter
      22 juillet 2010 à 9:24:02

      Je ne suis pas un spécialiste des frameworks PHP, mais je souhaitais tout de même donner mon avis.

      Je ne pense pas qu'un framework javascript (jQuery) puisse engendrer des soucis avec un framework PHP (ici cakePHP). En effet, ils sont tous les deux une simple surcouche de langages existants et à ma connaissance, javascript pose rarement de soucis de compatibilité avec PHP (à moins qu'il soient liés pour faire de l'ajax par exemple, mais c'est une autre histoire). ^^

      Après pour ta première question, c'est la problématique d'à peu près n'importe quel projet web.
      Est-ce qu'il vaut mieux tout développer au fur et à mesure ou bien est-il plus pratique de séparer chaque "langage" (ex : HTML, puis CSS, puis Javascript, puis PHP).

      Pour moi, c'est mieux, ça évites de tout mélanger et de se perdre dans des erreurs bêtes sans savoir ce qui vient poser le soucis. ;)

      Petit rappel, jQuery c'est ni plus ni moins que du javascript amélioré. :p
      • Partager sur Facebook
      • Partager sur Twitter
        22 juillet 2010 à 9:33:34

        Merci pour la réponse.

        Actuellement au niveau développement nous pensons faire ces étapes.

        cakePHP > HTML/CSS/Design > Optimisation/Validation normes > jQuery

        donc, on peut dire qu'on est partis dans le sens inverse (html/css > PHP)


        L'autre question à présent.
        Comme actuellement, aucun travail n'est fait en html/css, est se que je dois faire le jQuery avant ou après l'html/css/design?
        • Partager sur Facebook
        • Partager sur Twitter
          22 juillet 2010 à 9:49:22

          En fait, tout dépends de ce que tu veux faire avec ton javascript, mais en général celui-ci vient interagir avec le DOM de ta page (en quelque sorte l'arbre HTML qu'affiche le navigateur donc après l'interprétation du PHP), donc c'est plus simple pour toi de te baser sur la version plus ou moins définitive pour avoir une meilleure vue d'ensemble.

          Donc, je dirais après avoir fait le PHP et le HTML. ;)
          Voire même après le CSS si tu veux pas faire de bêtises.
          • Partager sur Facebook
          • Partager sur Twitter
            22 juillet 2010 à 9:56:25

            Merci beaucoup,

            Je pense suivre votre conseil.
            On parle souvent d'Ajax à quoi ça ert concrétement sur un projet?
            • Partager sur Facebook
            • Partager sur Twitter
              22 juillet 2010 à 10:20:41

              A modifier le contenu d'une page ou à déclencher des actions de façon transparente sans que le visiteur ne le voit (pas de rechargement de la page ou de redirection). C'est plus user-friendly.
              • Partager sur Facebook
              • Partager sur Twitter
                22 juillet 2010 à 10:52:11

                Ajax est intéressant dans un projet wb alors?
                • Partager sur Facebook
                • Partager sur Twitter
                  22 juillet 2010 à 11:19:40

                  En fait ajax c'est du javascript asynchrone (et c'est carrément plus simple avec jQuery). C'est à dire qu'il peut communiquer avec le serveur sans recharger la page.

                  Les utilisations dans un projet web sont assez variées : faire une galerie sans charger toutes les images au préalable, faire de la vérification et validation de formulaire sans attendre qu'il soit envoyé, mettre à jour une image (comme un avatar) après un nouvel upload.

                  En fait, tu peux demander à ton javascript de charger une page html, une image ou même un PHP auquel tu peux envoyer des paramètres GET et POST et utiliser les infos renvoyées dans ton code ou bien les afficher dans ta page.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 juillet 2010 à 12:01:30

                    D'accord, je connais pas du tout Ajax d'où mes questions;
                    donc jQuery+Ajax est assez bien pour dynamiser le site, on peut dire?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 juillet 2010 à 12:46:43

                      Uaip, ça le rends plus fluide, plus "beau".
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 juillet 2010 à 13:12:00

                        AJAX ça énerve ausi les utilisateurs puisqu'on perturbe leurs habitudes de navigation : si tu dois attendre le chargement d'un contenu en http tu changes de page, donc tu patientes, c'est l'utilisation normale. En AJAX tu peux cliquer sur un bouton, ne pas changer de page mais le contenu n'arrive pas tout de suite, et tu as un vieux message de chargement qui apparaît... l'attente *paraît* plus longue.

                        Yahoo mail fonctionne en AJAX maintenant, et c'est buggé sous safari : on ne peut pas envoyer un message à moins de passer en mode text plain (et là le message s'envoie tout seul sans raison). Le problème de l'AJAX c'est que c'est du JS -> exectuté par le client donc problèmes de compatibilité et de performance.

                        -

                        Si non, le JS tu le fais toujours à la fin. À la rigueur tu peux le faire en même temps que le CSS puisque les deux sont quand même assez liés. Mais si tu fais du PHP et du JS en même temps tu vas avoir tendance à générer du JS à la volée en PHP, que ce soit dans ton script ou carrément en dur dans les balises, parce que c'est simple et que ça va plus vite, mais ce n'est pas optimisé (il vaut mieux utiliser des boucles, des gestionnaires d'événements, etc.).
                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 juillet 2010 à 13:21:59

                          D'accord, donc théoriquement le développement PHP sera optimisé du mieux avant qu'on fasse l'HTML/CSS donc je devrais faire le jQuery/Ajax/CSS en même temps?

                          Je comprends pas trop "que ce soit dans ton script ou carrément en dur dans les balises".
                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 juillet 2010 à 13:28:13

                            ce serait plus clair exprimé ainsi : entre des balises <script></script> ou en dur dans le html (<input type="button" value="clique moi" onclick="mafonctionjs();" />)

                            Le PHP génère du HTML donc tu fais le PHP et le HTML en même temp plus ou moins. Le Javascript c'est pour faire joli, comme le CSS, donc tu le fais après. Pour du Javascript plus utile (AJAX, ou application internet basée sur du JS) tu peux penser au JS en amont pour savoir comment écrire ton PHP. ça dépend du projet.

                            Là je suis en train de réaliser un genre d'utilitaire en JS. J'ai dû penser à la relation qu'aurait le JS avec ma base de données pour savoir comment créer mes tables et comment écrire mon JS (on peut souvent utiliser plusieurs méthodes pour arriver au même résultat en JS)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              22 juillet 2010 à 13:33:05

                              Le plus propre (pour moi) étant d'éviter au maximum d'avoir du javascript sur une page HTML. C'est bien plus propre et simple de tout avoir dans un ficher javascript (un fichier .js) et de l'importer au début. Exactement comme pour le CSS.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                22 juillet 2010 à 13:36:42

                                oui, ça fait "cool" de n'avoir aucun code JS visible dans le HTML.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  22 juillet 2010 à 13:38:17

                                  Très intéressante comme remarque.
                                  donc dans tous les cas, que ce soit CSS/JS il faut plutôt les séparer en fichier et l'importer par la suite?

                                  Donc, ma page PHP contiendra les includes, ainsi que principalement le PHP+HTML?

                                  exacte?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    22 juillet 2010 à 13:49:05

                                    Pas frocément des includes.

                                    à la place de

                                    <style type="text/css">
                                    du css
                                    </style>
                                    
                                    <script type="text/javascript">
                                    <!--
                                    du js
                                    //-->
                                    </script>
                                    


                                    dans ton head, tu aurais

                                    <link rel="stylesheet" type="text/css" href="du_css.css" /> 
                                    <script type="text/javascript" src="du_js.js"></script>
                                    
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      22 juillet 2010 à 13:51:36

                                      Citation : Geoffrey-Zéro

                                      oui, ça fait "cool" de n'avoir aucun code JS visible dans le HTML.



                                      Si c'était que ça... :-°
                                      C'est bien plus pratique pour revenir sur ton code, pour isoler les erreurs (parce que il y en aura forcément), pour optimiser la vitesse de chargement, pour faire de la maintenance/mettre à jour le code plus tard.

                                      Donc dans ta page PHP, tu as du HTML et du PHP de manière classique et tu fais les liens vers tes fichiers CSS/JS dans la balise head (c'est ça que je voulais dire par importer).

                                      De ce genre là :
                                      <head>
                                         <link href="monCss.css" rel="stylesheet" type="text/css" media="screen" />
                                         <script type="text/javascript" src="jquery.js"></script>
                                         <script type="text/javascript" src="monScriptJs.js"></script>
                                      </head>
                                      

                                      (bien sûr, ce n'est qu'un exemple :-° )

                                      Edit : j'ai réussi à me faire griller même avec la fonction qui prévient en cas de nouvelles réponses. xD
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        22 juillet 2010 à 13:58:47

                                        Oui bien entendu :)
                                        J'avais exactement compris dans ce sens.

                                        Le mieux est de mettre tous les includes en haut de la page, c'est ça ?

                                        Ou est ce mieux de mettre
                                        <head>
                                           <link href="monCss.css" rel="stylesheet" type="text/css" media="screen" />
                                           <script type="text/javascript" src="jquery.js"></script>
                                           <script type="text/javascript" src="monScriptJs.js"></script>
                                        </head>
                                        


                                        dans une page .php et chaque page php require cette page?
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          22 juillet 2010 à 14:08:24

                                          Pour les includes vers le Javascript, on m'a souvent conseillé (à raison) de les faire en bas de page, juste avant la fermeture de la balise body, en fait.
                                          Ça permet d'optimiser le chargement de la page. En effet, quand le navigateur rencontre un appel vers un fichier JS, il va le lire en entier avant de continuer à charger la page. Donc si tu les mets en fin de page, ça permets au moins d'afficher la page avec son CSS au visiteur avant que le navigateur mette en place le javascript. Et c'est plus rapide comme ça. ^^

                                          Et sinon, tu peux très bien gérer l'entête de ta page html (doctype, head & co) dans un fichier php que tu viens inclure après. C'est même conseillé.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            22 juillet 2010 à 14:16:40

                                            D'accord, assez intéressant comme conseil :)
                                            mais justement, comment optimiser du javascript?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              22 juillet 2010 à 14:38:31

                                              En connaissant javascript :p

                                              il y a des méthodes plus performantes que d'autres, plus maintenables, plus compatibles, etc. Il suffit de connaître.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                22 juillet 2010 à 14:39:29

                                                D'accord, donc direction dans les forums spé et les documentations dans ce cas :)

                                                Merci encore
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  22 juillet 2010 à 14:40:59

                                                  Je connais bien deux-trois trucs, mais une rapide recherche sur google de "optimisation javascript" te permettra de trouver un certain nombre de sources bien plus expérimentées que moi. ;)
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    22 juillet 2010 à 14:45:28

                                                    Est il possible de savoir ces 2 trucs? ça pourrait être intéressant
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      23 juillet 2010 à 0:29:00

                                                      Citation : BNP


                                                      Petit rappel, jQuery c'est ni plus ni moins que du javascript amélioré. :p



                                                      Ou pas. Tu perds toute la syntaxe objet en jQuery, j'appelle pas ça une amélioration.

                                                      Citation : BNP

                                                      et c'est carrément plus simple avec jQuery



                                                      Rien ne t'empêche de créer une classe ou une fonction qui simplifie l'utilisation d'ajax.

                                                      Citation : BNP

                                                      C'est bien plus propre et simple de tout avoir dans un ficher javascript (un fichier .js) et de l'importer au début.



                                                      Pour améliorer les performances, il est préférable de placé le js à la fin du body plutôt que dans l'entête (on donne ainsi la priorité au contenu).

                                                      Citation : Geoffrey-Zéro

                                                      AJAX ça énerve ausi les utilisateurs puisqu'on perturbe leurs habitudes de navigation



                                                      Pas forcément. Ca dépend comment tu l'utilises. Si c'est pour changer les 3/4 du contenu autant faire une nouvelle page. Mais il y a des cas ou on ne saurait s'en passer : imagine google maps, ou facebook sans ajax

                                                      Voilà, j'ai fini de dénigrer :p

                                                      Pour finir, avant de lire tout tuto trouver au hasard sur le web (y compris sur le sdz), je conseille vivement de lire celui de nod_ sur les bonnes pratiques javascript
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        23 juillet 2010 à 1:01:20

                                                        Merci de vos remarques.

                                                        Est ce qu'il est possible d'avoir la fonctionnalité suivante avec jQuery.

                                                        Nous avons un site web avec :
                                                        - haut (bannière, logo, titre)
                                                        - gauche (menu)
                                                        - droite (module : paypal, facebook, etc)
                                                        - en bas (comme sur le SDZ)

                                                        et au centre, c'est l'endroit ou toutes les pages vont s'afficher (en passant par le panneau administration, les résultats de recherche, l'affichage des articles), et se rechargent mais reste dans cette espace qui lui est réservé. une sorte de fenêtre dédié au page.

                                                        Possible avec jQuery/Ajax?
                                                        j'ai bien compris que c'est une utilisation possible ?
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          23 juillet 2010 à 1:23:41

                                                          Citation : LCaba

                                                          Ou pas. Tu perds toute la syntaxe objet en jQuery, j'appelle pas ça une amélioration.



                                                          Effectivement, je ne voyais pas ça comme ça, ne poussant pas l'utilisation de javascript jusque là. Mais jQuery offre sa propre syntaxe objet, non ?

                                                          Citation : LCaba

                                                          Rien ne t'empêche de créer une classe ou une fonction qui simplifie l'utilisation d'ajax.



                                                          Bien sûr, mais dans l'idée passer par jQuery pour faire de l'ajax reste plus facile que de créer une classe pour du javascript natif.

                                                          Citation : LCaba

                                                          Pour améliorer les performances, il est préférable de placé le js à la fin du body plutôt que dans l'entête (on donne ainsi la priorité au contenu).



                                                          Oui, je l'ai précisé plus tard dans un autre message.
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            23 juillet 2010 à 1:29:42

                                                            ^^:)

                                                            Sinon pour ma question du post précédent?
                                                            car si c'est possible, ça limite largement le webdesign, exacte?
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              23 juillet 2010 à 1:41:37

                                                              DavidLord, c'est possible mais j'aurais tendance à le déconseiller : si le reste de la page est exactement identique d'une page à l'autre, c'est aussi bien de changer de page (rien n'empêche de faire un include en PHP pour te faciliter la vie mais l'utilisateur, lui, rechargerait la page).

                                                              Les problèmes de l'AJAX, autant que je m'en souvienne :

                                                              - tu n'as pas d'url unique pour chaque page, donc impossible de mettre une page précise en marque-page ou de faire un lien précis vers une page.

                                                              Bien-sûr, si le site est bien codé il y a une alternative sans JS pour atteindre la page (elle est donc référencée, etc.) mais pour permettre les fonctionnalités énoncées plus haut il faudrait ajouter un champ dans la page avec l'adresse directe (c'est ce que fait google maps il me semble).

                                                              - T'es aussi emmerdé avec l'historique de navigation (et les boutons précédent/suivant donc).

                                                              - Est-ce que parce que c'est mal foutu : sur les messageries AJAX je ne peux pas ouvrir un message ou une boîte dans un nouvel onglet pour lire un message en parallèle, retrouver un expéditeur, etc.

                                                              Donc on dit que l'AJAX est user friendly, je sais pas où on a cherché ça : pour moi c'est une honte que facebook ou yahoo mail ne fonctionnent pas sans Javascript. Quand je vois la lourdeur et le côté usine à gaz de ces deux sites je me dis que c'est pas une référence à avoir.
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Quand utiliser jQuery?

                                                              × 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