[spip-dev] r15217 - in branches/spip-2.1: ecrire ecrire/inc ecrire/public squelettes-dist

* cedric@yterium.com tapuscrivait, le 14/02/2010 23:40:

Author: cedric@yterium.com
Date: 2010-02-14 23:40:11 +0100 (dim, 14 fév 2010)
New Revision: 15217

Log:
#INSERT_HEAD_CSS mappe sur le pipeline insert_head_css est recommandee pour les plugins qui veulent inserer des styles dans le squelette public.
En les separant de insert_head, les squelettes peuvent les ajouter *avant* les style du squelettes qui peuvent ainsi les surcharger.

A noter que, pour conserver la compatibilite avec les squelettes existants, si la balise #INSERT_HEAD_CSS n'est pas presente dans le squelette, #INSERT_HEAD inserera son contenu (meme si l'insertion n'est pas optimisee)

Modified:
    branches/spip-2.1/ecrire/inc/filtres.php
    branches/spip-2.1/ecrire/inc_version.php
    branches/spip-2.1/ecrire/public/balises.php
    branches/spip-2.1/squelettes-dist/
    branches/spip-2.1/squelettes-dist/inc-head.html

Details: http://trac.rezo.net/trac/spip/changeset/15217

Tant que tu y es, un #INSERT_FOOTER qui permettrait d'insérer les js (y compris jquery) à la fin de la page avant le </html> serait bien utile pour optimiser le chargement des pages...

C'est beaucoup plus discutable :

1/ inserer jquery en fin de page casserait immediatement tous les plugins qui continuent à inserer leur js en head, et tous les squelettes qui ont des appels a jQuery dans leur corps
2/ c'est invalide (mais bon...)
3/ c'est un contournement des bugs des navigateurs, qui aura un effet négatif quand ceux-ci vont commencer à gérer proprement le chargement des js (puisque du coup le js ne sera chargé que tardivement).

Mon avis est que ce genre d'optimisation ne doit pas être écrit en dur dans les gênes des squelettes et des plugins, car elle est temporaire (liée à une situation présente), introduit une rupture de compatibilité importante, et doit être reversible.
Ce genre d'optimisation est pour moi du ressort du plugin compresseur (que l'on devrait renommer accelerateur), qui devrait proposer la collecte de tous les scripts de la page et leur déplacement en pied de page. Ainsi le jour ou ce n'est plus opportun il suffit de désactiver la fonction.

Cédric

* cedric.morin@yterium.com tapuscrivait, le 15/02/2010 09:47:

* cedric@yterium.com tapuscrivait, le 14/02/2010 23:40:

Author: cedric@yterium.com
Date: 2010-02-14 23:40:11 +0100 (dim, 14 fév 2010)
New Revision: 15217

Log:
#INSERT_HEAD_CSS mappe sur le pipeline insert_head_css est recommandee pour les plugins qui veulent inserer des styles dans le squelette public.
En les separant de insert_head, les squelettes peuvent les ajouter *avant* les style du squelettes qui peuvent ainsi les surcharger.

A noter que, pour conserver la compatibilite avec les squelettes existants, si la balise #INSERT_HEAD_CSS n'est pas presente dans le squelette, #INSERT_HEAD inserera son contenu (meme si l'insertion n'est pas optimisee)

Modified:
    branches/spip-2.1/ecrire/inc/filtres.php
    branches/spip-2.1/ecrire/inc_version.php
    branches/spip-2.1/ecrire/public/balises.php
    branches/spip-2.1/squelettes-dist/
    branches/spip-2.1/squelettes-dist/inc-head.html

Details: http://trac.rezo.net/trac/spip/changeset/15217

Tant que tu y es, un #INSERT_FOOTER qui permettrait d'insérer les js (y compris jquery) à la fin de la page avant le</html> serait bien utile pour optimiser le chargement des pages...

C'est beaucoup plus discutable :

1/ inserer jquery en fin de page casserait immediatement tous les plugins qui continuent à inserer leur js en head, et tous les squelettes qui ont des appels a jQuery dans leur corps
2/ c'est invalide (mais bon...)
3/ c'est un contournement des bugs des navigateurs, qui aura un effet négatif quand ceux-ci vont commencer à gérer proprement le chargement des js (puisque du coup le js ne sera chargé que tardivement).

Mon avis est que ce genre d'optimisation ne doit pas être écrit en dur dans les gênes des squelettes et des plugins, car elle est temporaire (liée à une situation présente), introduit une rupture de compatibilité importante, et doit être reversible.
Ce genre d'optimisation est pour moi du ressort du plugin compresseur (que l'on devrait renommer accelerateur), qui devrait proposer la collecte de tous les scripts de la page et leur déplacement en pied de page. Ainsi le jour ou ce n'est plus opportun il suffit de désactiver la fonction.

Voilà une réponse qui me plait beaucoup.
Ça résout pas l'immédiat, mais c'est bourré de bon sens.
Merci.

Log:
#INSERT_HEAD_CSS mappe sur le pipeline insert_head_css est recommandee pour les plugins qui veulent inserer des styles dans le squelette public.
En les separant de insert_head, les squelettes peuvent les ajouter *avant* les style du squelettes qui peuvent ainsi les surcharger.

Tant que tu y es, un #INSERT_FOOTER qui permettrait d'insérer les js (y compris jquery) à la fin de la page avant le </html> serait bien utile pour optimiser le chargement des pages...

C'est beaucoup plus discutable :

1/ inserer jquery en fin de page casserait immediatement tous les plugins qui continuent à inserer leur js en head, et tous les squelettes qui ont des appels a jQuery dans leur corps

Il faudrait donc deux balises, l'une pour ce qu'on veut mettre dans le head, et l'autre pour ce qu'on veut mettre dans le body (à la fin en général).

2/ c'est invalide (mais bon...)

???

3/ c'est un contournement des bugs des navigateurs, qui aura un effet négatif quand ceux-ci vont commencer à gérer proprement le chargement des js (puisque du coup le js ne sera chargé que tardivement).

Tu veux dire en attendant le support de "async" dans 100% des navigateurs du marché ? C'est pas demain la veille... :wink:

Mon avis est que ce genre d'optimisation ne doit pas être écrit en dur dans les gênes des squelettes et des plugins, car elle est temporaire (liée à une situation présente), introduit une rupture de compatibilité importante, et doit être reversible.
Ce genre d'optimisation est pour moi du ressort du plugin compresseur (que l'on devrait renommer accelerateur), qui devrait proposer la collecte de tous les scripts de la page et leur déplacement en pied de page. Ainsi le jour ou ce n'est plus opportun il suffit de désactiver la fonction.

Il ne faut pas forcément que tous soient déplacés en pied de page...

-Nicolas