[Résolu] Emplacement de jQuery

cpalocpalo Member
mars 2016 modifié dans Discussions générales
Bonsoir,

Maintenant (je crois que c'est conseillé) je mets mes scripts en fin juste avant </body>
[== HTML ==]
 <script src="<?php $plxShow->urlRewrite(); ?>/common/js/jquery.min.js"></script>

La question que je me pose, c'est comment être sur que jQuery est bien chargé en premier par rapport aux plugins qui iront s'installer à"la fin"? Ou si un plugin s'installe dans le "head" et qu'il ait besoin de jQuery, comment cela se passe-t-il?

Cordialement

Réponses

  • Bonjour,

    Si tu utilises le plugin Jquery, assure toi qu'il est le premier dans l'ordre de chargement des plugins.

    Il est préférable de charger le Jquery dans le header html, de façon à ce qu'il soit disponible pour les scripts appelés plus tard.

    En plaçant le code de chargement Jquery manuellement dans le header du thème (donc si tu n'utilise pas le plugin Jquery), les autres plugins s'insère après la dernière ligne du header (s'ils utilisent bien le hook ThemeEndHead) donc normalement jquery doit bien etre chargé avant les plugins.
  • Je vais donc refaire ce que je faisais auparavant, afin d'être sur que jQuery soit chargé en premier.
    C'est à dire remettre ma ligne :
    [== PHP ==]
    <script src="<?php $plxShow->urlRewrite(); ?>/common/js/jquery.min.js"></script>
    
    dans le head
  • Jerry WhamJerry Wham Member
    février 2015 modifié
    jQuery peut et doit être mis en bas de page. Cela accélère le temps de chargement de la page (recommandé par Google, Yahoo, et compagnies : http://www.alsacreations.com/astuce/lire/916-librairie-javascript-jquery-script.html).

    Après, il vaut mieux héberger un exemplaire en local de jquery même si passer par des serveurs tiers évite de le recharger (car c'est généralement dans le cache du navigateur). J'y vois deux raisons majeures :
    [list=*]
    [*]tu n'envoie aucune information à Google et consort par ce biais là[/*]
    [*]si le serveur qui héberge jquery tombe (ou si le service ferme, rigolez pas, ça c'est déjà vu), ton site tombe également.[/*]
    [/list]

    Une autre alternative, si l'envoie des données de tes visiteurs à google ne te dérange pas plus que ça, est de passer par leur serveur et de vérifier que jquery est bien chargé. Si ce n'est pas le cas, charger la version locale du script en faisant :
    if(typeof(jQuery) === "undefined") document.write(\'<script  type="text/javascript" src="js/jquery-x.xx.x.min.js"><\/script>\');
    
    (http://pluxopolis.net/article18/bonne-pratique-pour-declarer-jquery-dans-un-plugin)
  • @jerry
    C'est ce que je faisais ( le mettre en bas de page) et pas de problème pour les scripts que j'installais manuellement.
    Mais que se passe-t-il si un plugin s'installe dans le head?
  • cpalocpalo Member
    mars 2016 modifié
    Bonjour,

    Une petite vérification pour etre certain d'avoir bien compris.
    Jusqu'à maintenant en fin de document avant /body:
    <script src="common/js/jquery.js"></script>	
    
    Ci-dessous le code que j'utilise maintenant:
    <script>
    if(typeof(jQuery) === "undefined") document.write(\'<script  type="text/javascript" src="common/js/jquery-2.2.0.min.js"><\/script>\');
    </script>
    
    Et si un plugin s'installe dans le head et charge jquery, alors ce script ne chargera pas une seconde fois jquery.
    Cordialement
Connectez-vous ou Inscrivez-vous pour répondre.