Certains thèmes utilisent Jquery, mais actuellement rien ne permet de le savoir.
1 - Je pense qu'il serait bien de l'indiquer via le fichier themeconf.
2 Mettre le fichier jquery*.js dans le footer c'est très bien, mais après
{if isset($footer_elements)}
{foreach from=$footer_elements item=v}
{$v}
{/foreach}
{/if}
ce n'est pas glop!!!
En d'autre terme, je cherche à identifier les thèmes qui utilisent jquery et je souhaite pouvoir ajouter des fichiers js après la définition de jquery.
Toute solution qui répond à ce cahier des charges me convient.
Hors ligne
euh...
il faut mettre les fichier jQuery dans le header non ??
et via {known_script} ?
Hors ligne
grum a écrit:
euh...
il faut mettre les fichier jQuery dans le header non ??
et via {known_script} ?
Pour le moment ce n'est que la solution que l'on a mais gbo a raison il est nettement préférable de mettre le javascript dans le footer pour des raisons de rapidité d'affichage.
Hors ligne
nicolas a écrit:
Pour le moment ce n'est que la solution que l'on a mais gbo a raison il est nettement préférable de mettre le javascript dans le footer pour des raisons de rapidité d'affichage.
Ca c'est bon à savoir.
Merci.
Hors ligne
nicolas a écrit:
grum a écrit:
euh...
il faut mettre les fichier jQuery dans le header non ??
et via {known_script} ?Pour le moment ce n'est que la solution que l'on a mais gbo a raison il est nettement préférable de mettre le javascript dans le footer pour des raisons de rapidité d'affichage.
j'ai du mal à comprendre pourquoi çà serait plus rapide en fin de page que dans le header.
dans la même logique, il faudrait donc charger les feuilles de style dans le footer ???
:-/
D'un point de vue technique, il me semble plus logique de charger toutes les librairies dans le <head> plutôt que dans le <body>.
Pour ma part, un nombre certain de plugins contiennent du JS dans leurs templates.
Pour l'avoir déjà testé, si l'utilisation de jQuery est effectuée avant la déclaration des objets jQuery, çà plante, même si tu charges jQuery après.
Du coup, si on charge jQuery dans le footer, il risque d'y avoir plantage des scripts.
Pour ma part, c'est chargement au plus tôt de jQuery (limite, je m'arrange pour que çà soit la première chose de chargée).
De toutes façon, une fois que le fichier est téléchargé, il est dans le cache jusqu'à ce qu'il soit nécessaire de le télécharger de nouveau. Donc à partir de ce moment, çà ne devrait rien changer à la rapidité...
Hors ligne
je pense que le temps total de chargement est identique, mais en mettant les Javascripts à la fin, le HTML et les images ont le temps de s'afficher, l'utilisateur ne perçoit plus le temps de chargement des fichiers Javascript.
Mon souci n'est pas comment charger le JS, mais de savoir si un thème a déja chargé jquery(simple, Gally...).
Un exemple:
le Javascript de LLGBO fait X Ko et peut rentrer en conflit avec des développements de Jquery.
je tente de faire une version de LLGBO en Jquery qui ne fera plus que 1K, puisque Jquery est en place.
En fonction de la présence de jquery, je charge une version ou l'autre.
Dernière modification par gbo (2010-09-05 13:15:31)
Hors ligne
Mais en mettant les JS à la fin :
- je te garanti que tu fais planter mes plugins ;-P (si c'est pas ceux des autres !)
- le template Gally ne fonctionnera probablement plus, car pas mal de choses sont initialisées avant même que le HTML et les images ne soient finit d'être chargés
De toutes façon, une image fait plusieurs Ko (plusieurs dizaines, voir plusieurs centaines...) et un fichier JS fait tout au plus quelques Ko.
Le besoin, si je comprends bien, c'est juste de savoir si un module jQuery est déjà chargé ou pas. Dans ce cas, se limiter aux templates n'a pas trop de sens : certains de mes plugins chargent jQuery dans le header si celà n'est pas déjà fait... Si mon plugin s'active avant le tien sur un thème connu pour ne pas utiliser jQuery, tu auras quand même jQuery de chargé...
deux méthodes existent :
- le {known_script} intégré dans le template, tu ne te pose pas de questions s'il est déjà chargé ou pas, c'est piwigo qui gère => tu sais tout simplement que quelque soit le cas, tu disposes de jQuery (et dans ce cas je ne vois pas pourquoi coder du js avec du js sans jQuery)
- si tu n'as pas de template, coder directement en PHP la fonctionnalité (regarde dans la classe template comment est gérée la fonction known_script)
Hors ligne
Pour l'histoire des fichiers javascript à placer en bas de page (juste avant la fermeture de la balise body) ce n'est pas moi qui le dit bien évidemment. Je ne fais que répéter l'information : http://developer.yahoo.com/performance/ … #js_bottom
Il faut bien évidemment les placer dans le bon ordre et la bibliothèque jquery doit être placer avant tous les plugins qui l'utilisent !
Hors ligne
L'explication est intéressante.
Effectivement, çà peut prendre un peu de temps au premier chargement de page, mais une fois que les JS sont chargés normalement il sont dans le cache (à moins que le script ne soit produit dynamiquement).
Positionner les scripts spécifiques à une page, les charger en bas de page à peut-être du sens, mais quand il s'agit de bibliothèques, m'est avis que le <head> est quand même le meilleur endroit.
Hors ligne
grum a écrit:
deux méthodes existent :
- le {known_script} intégré dans le template, tu ne te pose pas de questions s'il est déjà chargé ou pas, c'est piwigo qui gère => tu sais tout simplement que quelque soit le cas, tu disposes de jQuery (et dans ce cas je ne vois pas pourquoi coder du js avec du js sans jQuery)
- si tu n'as pas de template, coder directement en PHP la fonctionnalité (regarde dans la classe template comment est gérée la fonction known_script)
Merci pour vos infos, je compile tout cela dans la semaine et si besoin, je complète mes questions.
Hors ligne