jQuery.info
Découvrir et utiliser jQuery, la librairie javascript du XXIIème siècle

Accueil du site > Actualités > JQuery 1.1.3 : 8 fois plus rapide, toujours 20 kb

JQuery 1.1.3 : 8 fois plus rapide, toujours 20 kb

mercredi 11 juillet 2007, par John Resig, Olivier G.

Toutes les versions de cet article : [français] [italiano]

Traduction de l’article jQuery 1.1.3 : 800%+ Faster, still 20KB, par John Resig


Je suis heureux d’annoncer la publication de jQuery 1.1.3. Après des mois de tests, de développements, et de test supplémentaires, nous avons une nouvelle version disponible au téléchargement. Elle corrige plus de 80 bugs et contient plusieurs améliorations. Notamment :

  1. Une vitesse accrue, avec une traversée de l’arbre DOM plus de 8 fois plus rapide qu’en 1.1.2 ;
  2. Un système d’événements réécrit, avec une gestion plus élégante des événements clavier ;
  3. Un système d’effets visuels réécrit (accompagnée d’une série de tests des effets), incluant une exécution plus rapide et un meilleur support multi-plateformes.

Mise à jour – le 4 juillet : nous venons de publier en urgence une version, numérotée 1.1.3.1, qui corrige quelques bugs résiduels.

Téléchargement :

Comme toujours, si vous trouvez le moindre bug dans cette version, merci de les publier dans le système de gestion des bugs de jQuery

Fonctionnalités de la 1.1.3

Augmentation importante de la vitesse des sélecteurs

Face à la demande, nous avons cherché dur et fait quelques changements majeurs dans le moteur de sélecteurs de jQuery. Voici une analyse des améliorations de rapidité. Tous les chiffres sont basés sur l’ensemble de tests SlickSpeed :

NavigateurjQuery 1.1.2jQuery 1.1.3Amélioration (%)
IE 6 4890ms 661ms 740%
Firefox 2 5629ms 567ms 993%
Safari 2 3575ms 475ms 753%
Opera 9.1 3196ms 326ms 980%
    Amélioration moyenne : 867%

De plus, nous avons testé le code amélioré face à certaines des fonctions de sélection des autres librairies courantes, toujours à l’aide de l’ensemble de test SlickSpeed

NavigateurPrototypejQueryMootoolsExtDojo
IE 6 1476ms 661ms 1238ms 672ms 738ms
Firefox 2 219ms 567ms 220ms 951ms 440ms
Safari 2 1568ms 475ms 909ms 417ms 527ms
Opera 9.1 220ms 326ms 217ms 296ms 220ms

Les quelques éléments à remarquer en regardant ces résultats sont :

  • Nous sommes presque 8 fois plus rapides que nous ne l’étions avec jQuery 1.1.2 ;
  • Nous sommes le framework le plus rapide dans le navigateur le plus répandu, Internet Explorer 6 ;
  • Nous sommes le seul framework qui ne donne pas résultats incorrects ;
  • Et tout ceci vous est disponible gratuitement — jQuery est toujours ces mêmes 20 kb que vous attendez et qui vous réjouissent.

Nouveaux Sélecteurs

Sélecteurs unicodes : c’est une grande amélioration pour ceux d’entre vous qui veulent utiliser des valeurs d’attributs, des ID, des noms de classes, ou des noms de tags codés en Unicode. Vous pouvez désormais les utiliser directement dans les sélecteurs jQuery :

  • $("div.台北")
  • $("div#台北")
  • $("foo_bar台北")
  • $("div[@id=台北]")

Sélecteurs d’échappement : une fonctionnalité souvent demandée : vous pouvez désormais sélectionner des éléments par ID (ou un autre sélecteur) qui utilisent des carctères spéciaux. Par exemple, le code suivant va trouver le div qui porte l’ID foo.bar :

$("div#foo\.bar")

Sélecteur d’inégalité : bien que ce sélecteur ne fasse pas partie de la Spécification CSS, il est fréquement utilisé et inclus dans les autres librairies de sélection, nous avons donc décidé de l’ajouter :

$("div[@id!=test]")

Améliorations de :nth-child() : Ce sélecteur vous permet de trouver des élements enfants specifiques. Nous utilisons des sélecteurs du type :nth-child(1) et :nth-child(odd) [NDT : odd signifie impair] depuis les premières versions de jQuery, nous avons maintenant des sélecteurs avancés, comme par exemple

  • $("div:nth-child(2n)")
  • $("div:nth-child(2n+1)")
  • $("div:nth-child(n)")

Attributs séparés par une espace : après avoir été retiré de jQuery 1.0, ce sélecteur revient suite à de nombreuses demandes. Il vous autorise à trouver un élément en fonction d’un attribut dont les valeurs sont séparées par des espaces (comme par exemple un attribut class ou rel) :

$("a[@rel~=test]")

Améliorations dans les effets d’animation

Vitesse : les animations sont maintenant significativement plus rapides et fluides. De plus, vous pouvez mainteant lancer plus d’animations simutanées sans impacter leur vitesse.

Tests : nous avons maintenant un série de tests dédiés aux animations — ce qui nous a permis de résoudre beaucoup de bugs insistants qui n’étaient auparavant pas localisables.

DOM Event Listeners (écouteurs d’événements DOM)

Le système d’événements de jQuery a été amélioré pour utiliser le système d’événements DOM, plutôt que la manière classique (onclick) de créer des gestionnaires d’événements. Cette amélioration vous autorise a être encore plus non-intrusifs si vous utilisez la librairie (sans affecter les autres librairies). De plus, cela a permis de résoudre certains problèmes résiduels qui existaient lorsqu’on liait des écouteurs d’événements à une Iframe.

Normalisations des événements

De grandes avancées ont été faites pour normaliser les événements clavier et souris. Vous pouvez maintenant accéder à la propriété event.which pour avoir tous les détails sur la touche ou le bouton spécifique qui a été utilisé.

Multiples .is()

La méthode .is() accepte maintenant plusieurs sélecteurs, séparés par des virgules. Cela vous permet de tester votre collection d’éléments jQuery par rapport à plusieurs sélecteurs :

$("div").is(":visible, :first")

Versions des navigateurs

Une fonctionnalité fréquemment demandée par les créateurs de plugins est un moyen de déterminer la version du navigateur utilisé par les internautes. Il y a désormais une nouvelle propriété qui permet d’obtenir cette information :

jQuery.browser.version

Plus de bugs résolus

Allez voir la liste des tickets pour voir tous les problèmes résolus par cette version.

Le futur de jQuery

Nous avons été très intéressés par les progrès et la direction prise jusqu’à présent par le projet jQuery. Nous nous concentrons maintenant sur un certain nombre d’autres aspects, mais notre soucis premier reste l’avancée du cœur de la librairie jQuery. Nous avons planifié les deux prochaines versions, décrites ci-dessous :

Jquery 1.1.4

Ce sera la dernière publication de la branche 1.1 de jQuery – une nouvelle version corrigeant des bugs avec quelques améliorations mineures. Cette version rendra aussi obsolètes un certain nombre de méthodes, en accord avec la prochaine version 1.2 de jQuery.

Nous pensons publier cette version à la fin du mois de juillet.

jQuery 1.2

Il s’agit de la prochaine version majeure de jQuery, comprenant un nombre significatif de nouvelles fonctionnalités. Tous les détails concernant cette version peuvent être trouvés dans le prévisionnel de jQuery 1.2.

Vous commentaires et retours sur cette version seront grandement appréciés. Nous en sommes encore à la planification, donc rien n’est encore définitif. Nous prévoyons de publier jQuery 1.2 à la fin août.

Livres à propos de jQuery [NDT : tous en anglais pour l’instant]

Il y a actuellement au moins 4 livres en cours de rédaction, et, tout aussi important, ils sont tous écrits par des membres de l’équipe jQuery (donc vous savez que vous aurez un contenu de qualité).

Les livres et leurs auteurs sont les suivants :

  • Learning jQuery, par Karl Swedberg et Jonathan Chaffer – attendu début juillet 2007 (Packt Publishing) ;
  • JQuery Reference Guide, par Karl Swedberg et Jonathan Chaffer – attendu pendant l’été 2007 (Packt Publishing) ;
  • JQuery Quickly, par Yehuda Katz et Bear Bibeault (Mannning Publishing) ;
  • Designing with jQuery, par Glen Lipka (Manning Publishing)

C’est vraiment une grande nouvelle. J’ai pu lire certains chapitres encore en travaux, et je pense que ces livres seront vraiment bons.

Exposés et conférences sur jQuery

Certaines Conférences seront faites à propos de jQuery dans les mois qui viennent. Il y aura notament quelques exposés aux deux conférences Ajax Experience.

À la conférence de San Francisco, John Resig fera une introduction suivie par une présentation des fonctions avancées. Glen Lipka donnera une conférence sur le design avec jQuery.

À la conférence de Boston, John et Glen conféreront à nouveau, et seront rejoints par Paul Bakaus pour une conférence consacrée au développement d’applications riches et de jeux à l’aide de jQuery.

Ètant donné qu’il y aura beaucoup de membres de l’équipe jQuery aux conférences Ajax Experience de Boston, nous sommes heureux d’annoncer que nous prévoyons de tenir une petite conférence (une journée) consacrée à jQuery le lendemain de la fin de the Ajax Experience. Ce sera l’occasion idéale pour vous de rencontrer l’équipe de jQuery, et poser toutes les questions brûlantes que vous aurez. Nous ferons aussi un certain nombre de présentations sur des aspects spécifiques de jQuery. Plus de détails bientôt.

jQuery UI

Aujourd’hui nous sommes aussi heureux de révéler un projet secret sur lequel nous avons travaillé : jQuery UI. Ce projet, écrit par Paul Bakaus, est une toute nouvelle librairie Drag & Drop, développée de zéro en tenant compte de la vitesse et de l’extensibilité. De plus, un grand soin est apporté à avoir un code entièrement commenté et testé — ce qui permettra à beaucoup d’autres développeurs d’utiliser et d’étendre cette librairie.

Elle contiendra tout le code nécéssaire pour déplacer, trier, prendre/lâcher, redimentionner et faire glisser des éléments.

Vous pouvez jetter un œil au travail de Paul dans le dépôt SVN.

Financement et remerciements

La nouvelle librairie jQuery UI marque une nouvelle étape dans le projet jQuery : son développement a été sponsorisé en utilisant l’argent donné par vous, les utilisateurs de jQuery !

Celà a été rendu possible de deux manières : d’une part par votre soutient constant et les dons au projet jQuery, d’autre part grâce à un généreux don de serveur de la part de Media Temple. Celà nous permet de concentrer nos ressources sur d’autres projets qui bénéficieront au plus grand monde.

Je profite donc de cette occasion pour demander de nouveaux dons pour nous aider à continuer à financer les développements que vous pourrez utiliser dans vos sites. Toute aide sera grandement appréciée.

Une fois de plus, je voudrais remercier l’équipe de jQuery et tous ceux qui nous ont aidé à rendre possible la finalisation de cette version. Il y a eu beaucoup de travail pour faire exister cette version, mais j’espère qu’elle vous réjouira autant que nous. Merci, et merci d’utiliser jQuery !

Répondre à cet article


Derniers commentaires

Nouveautés sur le Web