C’est comme « croiser les effluves », c’est mal (si cette pseudo blague ne vous fait pas sourire, google est votre ami).
Mais pourquoi est-ce mal vous vous demandez ?
Pour de nombreuses raisons, mais je vais juste énoncer les plus évidentes.
Pourquoi utilisez vous plusieurs librairies sur votre site ? Je crois que la réponse est simple, parce que vous avez vu tel ou tel effet sur tel ou tel site et que vous voulez tous les utiliser sur le votre.
Sauf que le premier script fonctionne avec scriptaculous et l’autre avec jQuery… Pas grave, j’installe les deux librairies, les deux scripts et c’est parti comme en 40…
Oui mais…
Les deux librairies cumulées (même en version compressée de production) ajoutées aux deux scripts vont vite représenter un poids de plus de 100 kos, soit bien souvent, plus que votre page entière. Et pourquoi ? Arrondir les angles de vos blocs ? Utiliser thickbox que maintenant tout le monde connait ? Mijoter vos formulaires à la sauce AJAX ? Avez-vous vraiment besoin de tout ça ?
De plus, il est fréquent de rencontrer des problèmes de compatibilité de scripts d’une librairie quand une autre est installée, souvent vous allez perdre du temps à chercher l’origine du bug alors qu’un script qui fait à peu de choses près la même chose existe déjà en liaison avec votre première librairie, en cherchant un peu vous l’auriez trouvé, peut être plus rapidement que la réponse à votre bug.
Si un script lié à une librairie vous plait, prenez le temps de voir si un script proche, adaptable, n’existe pas déjà pour votre librairie déjà installée !
Vous vous éviterez, et potentiellement à vos visiteurs aussi, je le pense, de nombreux problèmes.
Un dernier point à soulever : avez-vous vraiment besoin d’une librairie complète alors que vous ne voulez gérer qu’un effet simple ?
Les librairies sont à la mode, on en parle beaucoup, mais avez-vous pensé à chercher si l’effet que vous voulez intégrer à votre site n’existe pas sous une forme indépendante ? Moins lourd ? Moins gourmand en ressources (et de préférence aussi bien programmé) ?
Bref, n’utilisez pas plusieurs librairies javascript en même temps sur votre site, c’est mal.
5 réponses à “Evitez de cumuler les librairies Javascripts sur vos sites”
J’aurais juste dit « Evitez le javascript sur vos sites » :p
En effet, tout comme Flash, il pose pas mal de petits problèmes en termes d’accessibilité, et de référencement.
Quelques exemples :
– Que donne votre site si le Javascript n’est pas activé? Est-il encore utilisable? (je pense particulièrement aux sites abusant de l’AJAX, aux menus déroulants, , ou alors aux validation de formulaires)
– Que fera un robot passant sur votre site? Le contenu du javascript ne sera probablement pas référencé… (embêtant si le contenu principal de la page en utilise)
– Si un malvoyant passe sur votre site, pourra-t’il l’utiliser avec un navigateur vocal? Là encore cette technologie risque de poser des soucis…
Biensûr, il existe des solutions à certains de ces problèmes, mais elles demandent du temps pour être mises en place, et ces soucis augmentent le risque de bug. D’où mon conseil : « Evitez le javascript quand on peux faire sans » !
Cela dit, ton billet reste 100% valable, lorsqu’on en utilise ;)
Oui en effet, je m’étais permis d’élargir un petit peu le sujet (qui parlait tout de même bien de Javascript, et de son utilisation) ;)
Désolé pour ce hors sujet
Lionel : il s’agit d’un tout autre débat. Il s’agit de questionnements sur les bonnes pratiques en matière de l’usage de javascript dans un page web.
Ca ne demande pas forcément beaucoup de temps à mettre en place, c’est juste une question de procédures, et surtout de bien utiliser comme une surcouche sur une page web fonctionnelle et non pas de l’utiliser comme une fin en soit, mais là, on sort du sujet.
Ohh mais tu n’es pas totalement hors sujet, tu as juste un peu déplacé le problème initial. ;)
Pour ma part, après avoir testé les différentes librairies, j’ai opté pour jquery qui me semble relativement légère et très complète.
Si j’utilise une bibliothèque, c’est avant tout pas fainéantise et manque de temps, en effet, je n’ai pas trop le temps de m’attarder sur le dév d’effets et fonctionnalités déjà tout prêtes dans ces bibliothèques
Rapport au débat : « Ne pas utiliser de javascript », j’essaie autant que possible de faire de l’inclusion non intrusive. Je suis contre la non utilisation des technologies à notre disposition sous prétexte que certain internautes n’y ont pas accès, par contre, il est bien évidement nécessaire de les inclure de manière intelligente.