Annonce

  •  » Styles
  •  » Faire le tri dans les include jQuery ?

#1 2010-11-16 10:19:39

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Faire le tri dans les include jQuery ?

Ayant repris des scripts des thèmes Simple et Gally je me retrouve avec des appels vers Jquery dans le header et dans le footer... ce qui donne à peu près ça, en ayant viré les appels de scripts eux-même :

- Header Gally :

Code:

  <script type="text/javascript" src="{$ROOT_URL}themes/default/js/jquery.packed.js"></script>

  {known_script id="jquery" src=$ROOT_URL|cat:"themes/default/js/jquery.packed.js"}
  {known_script id="jquery.ui" src=$ROOT_URL|cat:"themes/default/js/ui/packed/ui.core.packed.js"}
  {known_script id="jquery.ui.tabs" src=$ROOT_URL|cat:"themes/default/js/ui/packed/ui.tabs.packed.js"}
  {known_script id="jquery.ui.dialog" src=$ROOT_URL|cat:"themes/default/js/ui/packed/ui.dialog.packed.js"}

- Footer Simple

Code:

  
 <script type="text/javascript" src="{$ROOT_URL}themes/{$themeconf.theme_dir}/js/jquery-1.4.2.min.js"></script>

J'aimerais bien rationnaliser un peu tout ça.
C'est quoi le jquery "packed" ?
C'est une librairie jQuery condensée ?
A priori simple utilise 1.4.2 donc je pourrais ne laisser que l'appel à la librairie de simple ?

Que signifient les "known_script id=" de Gally ?

Est-ce qu'il vaut mieux que je mette les appels dans le header ?
J'ai lu ce sujet :
[[Forum, topic 18498] théme avec Jquery]
qui conseille de le mettre dans le footer mais n'y a-t-il pas un risque que la page soit d'abord affichée sans prise en compte des scripts, et qu'ensuite seulement les scripts soient pris en compte ?

Hors ligne

#2 2010-11-16 19:31:44

grum
Former Piwigo Team
50% Nantes - 50% Paris
2007-09-10
2502

Re: Faire le tri dans les include jQuery ?

packed : le code est packé : çà prends deux ou trois fois moins de place que le code non packé, c'est mieux pour le chargement

gally utilise jQuery livré en standard avec Piwigo => de mon côté, je pars du principe que d'utiliser le framework jQuery livré avec Piwigo évite tout problème de compatibilité (c'est déjà arrivé notamment avec le plugin lightbox il me semble)

le "known_script" c'est une fonctionnalité des templates piwigo : en utilisant un known script, je laisse piwigo gérer l'insertion des script dans les pages (çà permet notamment d'éviter de charger 3 fois le même script pour peu qu'ils soient bien nommé)


quand à savoir s'il faut mettre le chargement dans le header ou le footer, certains te diront le footer.
pour ma part, c'est le header pour des raison de logique :
- le header d'une page HTML c'est en parti prévu pour çà
- tous mes plugins chargent les librairies dans le header : typiquement dans le cas du thème 'simple' il est fort probable que le jQuery de piwigo soit déjà chargé par l'un de mes plugins (si installé) lorsque l'instruction de charger jQuery 1.4.2 est atteinte dans le template simple
- certains scripts (de certains plugins) commencent à être chargé avant que la fin de page ne soit atteinte

Dernière modification par grum (2010-11-16 19:33:35)


Mes photos avec Piwigo évidemment !
[ www.grum.fr ] [ photos.grum.fr ]

Hors ligne

#3 2010-11-16 19:46:52

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Faire le tri dans les include jQuery ?

Une précision sur le know script: celui-ci peut etre mis dans n'importe quel fichier tpl, le résultat sera le meme => chargement du fichier dans le header.


P@t

Hors ligne

#4 2010-11-16 21:29:09

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: Faire le tri dans les include jQuery ?

grum a écrit:

gally utilise jQuery livré en standard avec Piwigo => de mon côté, je pars du principe que d'utiliser le framework jQuery livré avec Piwigo évite tout problème de compatibilité (c'est déjà arrivé notamment avec le plugin lightbox il me semble)

C'est le cas pour gmaps aussi ou pas ?

Je trouve ça effectivement assez sain comme choix.
A priori simple utilise la 1.4.2 qui est plus récente... du coup si je la vire j'ai l'impression qu'il y a des soucis.

Quoiqu'il en soit, je peux normalement me contenter d'un appel à l'un des deux ?


Pour les known scripts, si je n'appelle pas le jquery.packed.js de piwigo... je peux m'en passer ou pas ?

grum a écrit:

certains scripts (de certains plugins) commencent à être chargé avant que la fin de page ne soit atteinte

oui, c'est ce qui me parait intéressant...

Maintenant... truc étrange quand j'ai enlevé l'appel au jquery 1.4.2 de simple, tout marchait encore bien (il me semble) sauf gmaps qui ne marchait plus.
(étrange car gmaps ne fait pas appel à ce fichier).

Dernière modification par Zaphod (2010-11-16 21:55:02)

Hors ligne

#5 2010-11-16 21:54:49

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: Faire le tri dans les include jQuery ?

Il doit y avoir un truc dans les scripts de simple qui nécéssitent 1.4.2... car si je ne le mets pas, ça ne marche pas.
Si je mets 1.4.2 et pas le packed.js de piwigo, tout semble marcher en revanche.

Une petite précision d'ailleurs sur le :

Code:

{known_script id="jquery" src=$ROOT_URL|cat:"themes/default/js/jquery.packed.js"}
{known_script id="jquery.ui" src=$ROOT_URL|cat:"themes/default/js/ui/packed/ui.core.packed.js"}
{known_script id="jquery.ui.tabs" src=$ROOT_URL|cat:"themes/default/js/ui/packed/ui.tabs.packed.js"}
{known_script id="jquery.ui.dialog" src=$ROOT_URL|cat:"themes/default/js/ui/packed/ui.dialog.packed.js"}

A part le premier, les 3 autres ne sont pas appellés.
Ca remplace un appel à ces librairies, ou c'est pour couvrir un éventuel besoin de plugins additionels ?

Hors ligne

#6 2010-11-17 00:24:44

saimon
Membre
2006-12-04
367

Re: Faire le tri dans les include jQuery ?

* packed vs min: la version packed est plus petite mais elle nécessite d'être "unpacked" par le client, ce qui prend du temps. De plus, il est possible d'activer la compression gzip ce qui doit ramener la version min (minifiée) au même poids que la version packed. Donc de ce que j'en ai compris la version min est plus intéressante.

* script header / footer: si yahoo dit qu'il faut les mettre dans le footer, perso je les crois :-).
http://developer.yahoo.com/performance/ … #js_bottom
mais comme ca marche pas avec known_script et que du coup les plugins vont charger une 2ème version de jquery dans le header, j'ai modifié le code de simple pour utiliser known_script, tant pis ... : [Github] simple-grey commit 35598c4b

Zaphod, vu que tu as l'air de pas mal modifier simple, ca peut être intéressant pour toi de suivre les modifs que je fais: https://github.com/saimn/simple-grey/commits/master
voire si tu veux utiliser un gestionnaire de version, ca te faciliterait la tache.

Dernière modification par saimon (2010-11-17 00:27:25)

Hors ligne

#7 2010-11-18 22:14:15

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: Faire le tri dans les include jQuery ?

Merci pour les infos.
Je vais tenter de faire la même modif en known script, voire ce que ça donne...

Pour le gestionnaire de versions... je vais déja tenter de faire une version diffusable (on s'en approche), on verra ensuite ;)

Dernière modification par Zaphod (2010-11-18 22:24:10)

Hors ligne

#8 2010-11-19 00:57:57

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: Faire le tri dans les include jQuery ?

La balise know_script accepte le paramètre "now" qui permet de charger le fichier js à l'endroit meme ou elle est utilisée:

{known_script id="jquery" now=true src=$ROOT_URL|cat:"themes/default/js/jquery.packed.js"}

Ca peux peut-etre résoudre vos soucis...

Mais on pourrait aussi rajouter très facilement un paramètre "load" (optionnel) à la fonction know_script qui permettrait de charger automatiquement le js dans le footer:

{known_script id="jquery" load="footer" src=$ROOT_URL|cat:"themes/default/js/jquery.packed.js"}

Si ca intéresse quelqu'un, une petite fiche dans le bugtracker, et je m'en occuperai ;-)


P@t

Hors ligne

#9 2010-11-19 01:52:25

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: Faire le tri dans les include jQuery ?

En tous cas c'est étrange... je n'arrive pas à virer l'un des deux appels à jQuery.

Code:

  {known_script id="jquery" src=$ROOT_URL|cat:"themes/default/js/jquery.packed.js"}
  {known_script id="jquery-2" src=$ROOT_URL|@cat:"themes/julien/js/jquery-1.4.2.min.js"}

Si j'en enlève un des deux... j'ai des scripts qui plantent...

[edit]
En fait je viens de comprendre, je crois.
J'ai surement des plugins qui font appel à jquery.packed.js avec known_script id="jquery"
Si je mets la version 1.4.2 avec known_script id="jquery", ça plante.
Si je mets la version 1.4.2 avec known_script id="jquery-2", ça marche.

Mais donc les deux versions sont probablement chargées, ce qui est dommage...

[edit2]
En fait si je désactive GMaps, ça ne marche plus... donc il faut bien que je mette les deux appels pour que tout marche, c'est quand même étrange...

Dernière modification par Zaphod (2010-11-19 02:02:05)

Hors ligne

#10 2010-11-19 16:37:16

cljosse
Former Piwigo Team
2006-11-12
1167

Re: Faire le tri dans les include jQuery ?

bonjour.

Code:

En fait si je désactive GMaps, ça ne marche plus... donc il faut bien que je mette les deux appels pour que tout marche, c'est quand même étrange...

Pour pouvoir utiliser le Theme Simple avec GMaps:
il faut commenter la ligne 1 du themes/simple/js/script.js
//jQuery.noConflict();
[HS]
En regle générale si on veut utiliser jQuery, il est souhaitable pour des raisons de compatibilités utiliser la syntaxe
jQuery(.. plutôt que $(..
jQuery.ajax plutôt que $.ajax ...
Comme cela si d'autre framework sont chargé l'instruction jQuery sera bien prise en compte.
[/HS]
  Mais ceci est hors sujet, mais j'avais envie de le dire. :-)


A+

Hors ligne

#11 2010-11-19 17:54:44

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: Faire le tri dans les include jQuery ?

Ca n'est pas hors sujet, au contraire c'est intéressant...
Ce sont tous les $ qu'il vaut mieux remplacer par jQuery ou pas ?

Je vais tenter de virer la première ligne pour voir.

Hors ligne

#12 2010-11-19 18:04:24

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: Faire le tri dans les include jQuery ?

Un grand merci cljosse pour le coup du noConflict() à virer...
Grace à ça j'ai enfin réussi à n'appeller qu'une seule librairie jQuery.

Résultat j'ai le choix entre utiliser la librairie Piwigo de base, ou celle de simple (1.4.2min).
Vu ce qui est expliqué sur le site jQuery... j'aurais tendance à choisir la 1.4.2.min seulement un chouilla plus grosse (70 vs. 50) mais qui ne nécéssite pas de décompression.

Dernière modification par Zaphod (2010-11-19 18:08:11)

Hors ligne

#13 2010-11-19 18:50:46

cljosse
Former Piwigo Team
2006-11-12
1167

Re: Faire le tri dans les include jQuery ?

Zaphod a écrit:

Ca n'est pas hors sujet, au contraire c'est intéressant...
Ce sont tous les $ qu'il vaut mieux remplacer par jQuery ou pas ?

Oui si on écrit un script il faut mieux mettre jQuery à la place de $ .

:-)

Hors ligne

  •  » Styles
  •  » Faire le tri dans les include jQuery ?

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact