Ca y est, j'ai enfin pu tester jQuery, dont Fred et Yann me parlent régulièrement depuis... 1 an ? 1 an et demi ? moins ? je ne sais plus, mais depuis un moment quoi !
J'utilise Prototype depuis fort longtemps, c'est en fait le seul "framework JS" que j'ai jamais utilisé. Il fut un temps où c'était aussi la seule option valable. Depuis évidemment, la concurrence s'est faite plus rude. Mais comme il a toujours répondu à mes besoins, je n'ai jamais été tenté d'aller voir ailleurs. Mais il est vrai que jQuery fait parler de lui et ça commençait à devenir urgent de m'y mettre. J'ai donc profité de mes derniers congés pour migrer mon site perso (qui me sert surtout de bac à sable en fait) de Prototype / scriptaculous vers jQuery. J'ai pas mal de remarques à faire comme retour d'expérience mais je vais les scinder en plusieurs billets car le premier point que je veux mettre en lumière mérite un post à lui tout seul.
Pour rappel, vous pouvez lire ce billet où Yann, un visiteur et moi-même avions déjà abordé ce "combat" Prototype - jQuery :)
Et donc le premier point dont je veux parler, c'est la taille, le poids, le volume !
Car oui, dans le Web, la taille, ça compte. Sauf que là, on joue à celui qui a la plus petite. Et j'étais assez optimiste là dessus puisque tout le monde vante la taille réduite de jQuery. Sachant qu'effectivement scriptaculous n'est pas vraiment ce qu'on a fait de plus léger, ça part plutôt pas mal. Oui mais regardons tout ça de plus près.
Process de relevé des tailles suivantes : les fichiers passent à la moulinette JSMin puis sont servis GZippés. De plus, pour jQuery et UI, j'ai utilisé les versions "minified".
- Prototype (1.6.0.3) : 23,9 Ko
- jQuery (1.3.1) : 18,8 Ko
jQuery vainqueur, comme prévu... Bon, maintenant, je veux utiliser des effets visuels un peu complexes. jQuery propose de base des effets visuels simples. Pour forcer la dose, il faut utiliser son plugin UI. Le site de ce dernier offre une fonctionnalité très sympa : faire son fichier à la carte. Vous choisissez les effets que vous voulez utiliser (il gère les éventuelles dépendances) et il génère le fichier. Dans tous les cas, vous devez embarquer le noyau de UI.
- scriptaculous (1.8.2, juste les fichiers "effects", "controls", "dragdrop" et "slider") : 19,6 Ko
- UI (1.6rc6, version complète) : 45,2 Ko
- UI (1.6rc6, juste le noyau) : 3,0 Ko
Comme on le voit, scriptaculous n'est peut-être pas si lourd et la taille de UI a vite tendance à exploser dès qu'on ajoute des effets au noyau (et encore, je ne parle pas des thèmes...) !
Le couple le plus léger est donc proto-culous ! Dans tes dents jQuery !
C'est un peu son problème (à jQuery) : il est léger, certes mais pour moins de fonctionnalités (cf. mon avis à ce sujet dans les billets à venir), il faut donc lui ajouter des plugins, ce qui l'allourdit d'autant...
Articles similaires
- Quand un habitué de Prototype teste jQuery - part. 2 : suite et fin
- Petit bug jQuery / TinyMCE
- Diaporama automatique avec Lightbox
- jQuery 1.4
- Validateur W3C en local sous Mac OSX
- Redirection par .htaccess après migration d'un site
- Comment choisir son langage/framework de développement web?
- XAware, l'intégration de données open source
- Obtenez votre invitation à Google WAVE
- Installation de Trac chez l'hébergeur Dreamhost, en un clic



pour nous maintenant c'est YUI
Bein depuis on a adopté YUI comme librairie javascript.
J'étais pas très chaud au début quand euphrate_ylb m'en avait parlé. Le javascript c'est pas trop mon truc et YUI me paraissait compliqué, mais cette première impression a vite disparue, c'est que du bon. C'est complet, propre et complètement compatible avec les différents navigateurs (y compris IE 6!).
C'est sur euphrate_ylb m'a mâché le travail en m'expliquant toutes les subtilités ;)
La partie CSS de YUI est également excellente entre autre base CSS et grids CSS, avec ça la présentation reste stable quelque soit les navigateurs.
Cerise sur le gâteau (ou le cake), le YUI loader, qui va charger toutes les dépendances nécessaires aux composants utilisés sans superflu.
A essayer d'urgence !
--verbose ?
n'hésitez pas à poster un billet d'intro / description à YUI ;)
Dia
Heu... La comparaison sur la
Heu... La comparaison sur la taille est très mauvaise car, si je prends JQuery est décompressé, et pendant ce laps de temps, tout téléchargement est arrêté.
Il faut juger sur la vitesse de chargement et de disponibilité !
Sinon, tu peux mettre carrément du ZIP, ça sera + court en taille mais + long à charger au final.
...
le temps gagné sur l'envoi des données grâce à la compression compense largement le temps de décompression effectué côté client (ou alors tu utilises un PC d'il y a 15 ans ?)
Dia
Tu écris ne pas connaître
Tu écris ne pas connaître le Javascript mais tu prétends que le temps est compensé ?! Qu'en sais-tu ? Tu as fait des tests ?
Et bien moi je t'affirme le contraire, et le Javascript n'a aucun secret pour moi (au passage, je n'utilise aucun Framework car j'estime qu'ils compliquent le code, pourtant très simple, du Javascript). Seulement quelques fonctions "maison", un millième de chouia plus rapides que celles de JQuery
Un article de quelqu'un qui maîtrise : http://www.the-asw.com/2007/07/13/performances-des-packers-javascript/
pardon, Dieu
> Tu écris ne pas connaître le Javascript
pardon ?
> mais tu prétends que le temps est compensé
lol, oui, je prétends que le temps passé par un navigateur actuel (mettons Firefox) tournant sur un OS actuel (le dernier Ubuntu ?) le tout sur une machine à peu près d'actualité (disons un core 2 Duo) passe un temps négligeable à décompresser du JS
> le Javascript n'a aucun secret pour moi
au moins, tu es modeste, c'est bien
> au passage, je n'utilise aucun Framework car j'estime qu'ils compliquent le code, pourtant très simple, du Javascript
je vois qu'on n'a pas la même vision des choses !!!
bon, ce qui me rassure c'est que tu es la 1ère personne que j'entends donner cet avis
Dia
Au sujet de la personne de le JS n' aucun secret pour lui...
Je suis sincèrement ravi que tu es le temps de te construire ton propre équivalent à JQuery te permettant de gagner quelques "millième de chouia". Personnellement, je préfère (et mes clients ne s'en plaignent pas) consacrer du temps aux fonctionnalités "mêtier" de l'application et réutiliser un framework javascript. Pauvre développeur que je suis, je ne peux me permettre de recoder en assembleur l'intégralité des fonctions dont j'ai besoin.
D'ailleurs, pour le développeur lambda, ce sont d'ailleurs ces fonctionnalités qui plombent les performances de l'application (accès DB, affichage des vues), bien plus que des librairies opensource javascript cachées par le navigateur et améliorées continuellement par une communauté active.
Et puis qu'est ce que la perfomance? Sûrement pas un nécessité absolue pour un développement web. Elle est toute relative aux contraintes et aux besoins du projet. Ce qui est inacceptable pour un projet donné peut etre satisfaisant pour un autre. Ce n'est pas l'égo du développeur qui gouverne les choix technologiques mais bien le projet lui-même.
En tout cas, n'hésite pas à faire partager ton travail "maison" avec la communauté qui sera ravie d'utiliser un framework enfin plus performant que Dojo, YUI, JQuery... Car au final, comme ce que nous tentons de le faire au travers de ce blog, il est toujours profitable (aussi bien pour l'emetteur de l'information que son receveur) de transmettre à la communauté nos humbles expériences de développeurs.