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

Accueil du site > Actualités > JQuery 1.2.6 : des événements deux fois plus rapides

JQuery 1.2.6 : des événements deux fois plus rapides

jeudi 5 juin 2008, par John Resig, Olivier G.

Traduction libre des notes de version de jQuery 1.2.6.


JQuery 1.2.6 est principalement une version corrigeant des bugs de jQuery 1.2. Vous pouvez voir la liste complète des corrections dans le traqueur de bugs.

Il s’agit de la version remplaçant la version 1.2.3. Les versions 1.2.4 et 1.2.5 ont été abandonnées (la 1.2.4 était mal construite, ce qui la rendait fonctionnellement identique à la 1.2.3, et il manquait une correction dans la 1.2.5).

Toute l’équipe de jQuery a fait un travail fantastique pour compiler cette version — je veux profiter de l’occasion pour les remercier tous pour leur continuel et important travail.

J’en profite aussi pour accueillir Ariel Flesher dans l’équipe de développement du noyau de jQuery. Il nous a apporté une aide précieuse pour produire cette version — fournissant des corrections de bugs, des améliorations de performances, des fonctionnalités et des cas de tests. Vous pouvez voir le résultat de son dur travail tout au long de cette version. Bienvenue Ariel et merci pour tes contributions !

Téléchargement

jQuery 1.2.6 :

Si vous voulez récupérer complètement cette version depuis le dépôt Subversion, vous pouvez le faire en suivant les instructions puis en récupérant la source depuis la localisation suivante :

svn co http://jqueryjs.googlecode.com/svn/tags/1.2.6

Améliorations des Performances

Une fois de plus, l’équipe de jQuery a travaillé dur pour apporter à cette version de grandes améliorations de performances. Comme avec les versions précédentes, nous avons vérifié bien des aspects du framework jQuery, en cherchant les points de friction et en les soulageant.

Toutes les données et les cas-tests des gains de performances ci-dessous peuvent être trouvés dans la feuille de calcul google jQuery 1.2.3 vs 1.2.6 (les résultats pour internet explorer 6 ont été exclus en faveur de ceux d’internet explorer 7 parce que les données sont quasiment identiques).

La gestion des événements est 103% plus rapide

En analysant le code d’applications complexes (particulièrement les actions comme le drag-and-drop), nous avons cherché à faire des changements universels qui bénéficieraient à tous les utilisateurs. La gestion des événements de jQuery est un élément de code fréquemment appelé, n’importe quelle optimisation améliorerait grandement les performances de n’importe quel événement fréquemment appelé. Parce que nous avons mis l’accent sur l’amélioration de cette portion de code, tous les événements fréquemment appelés dans votre code devrait en bénéficier.

Les sélecteurs CSS sont 13% plus rapides

Beaucoup d’optimisations ont été faites dans les méthodes internes de jQuery, augmentant de manière importante leurs performances, tout en procurant des bénéfices mesurables dans certaines des portions de code les plus utilisées dans jQuery (comme par exemple le code du sélecteur CSS).

Par exemple, la méthode jQuery.map() est à présent plus rapide de 866%, et la méthode jQuery.extend() est plus rapide de 19%. Ces deux changements ont permis d’importants gains de performances dans toute la bibliothèque.

.offset() est plus rapide de 21%

De conserve avec les améliorations de la gestion d’événements, les optimisations de .offset() ont permis aux actions basées sur la souris de devenir beaucoup plus rapide. Par exemple, le code du drag-and-drop de jQuery UI est désormais plus rapide de 300% grâce à ces changements (vous permettant de réaliser des actions de drag-and-drop plus rapides et plus fluides).

.css() est plus rapide de 25%

Une méthode qui est souvent appelée (à la fois à l’intérieur de la bibliothèque et dans les scripts). Les optimisations de cette méthode sont facilement ressenties dans les autres méthodes (comme par exemple .offset()).

Nouvelles fonctionnalités et changements importants

Le plugin Dimensions est désormais intégré au noyau de jQuery

Les méthodes non encore intégrées du plugin Dimensions, de Brandon Aaron, ont été introduites dans le noyau de jQuery, en même temps que des corrections de bugs supplémentaires et des améliorations de performances. Ce plugin a été beaucoup utilisé par les développeurs et les auteurs de plugins et est devenue une partie importante de l’écosystème de jQuery. Nous avons, progressivement, intégré les méthodes les plus utilisées du plugin au cours des deux précédentes versions, mais avec la publication de la 1.2.6, toutes les méthodes laissées de côté font maintenant partie du noyau.

Si vous mettez à jour votre copie de jQuery dans la version 1.2.6, vous pouvez maintenant retirer le plugin Dimensions de votre code.

La documentation complète de Dimensions peut être trouvée sur le site de documentation de jQuery (et son intégration dans la documentation du cœur de jQuery est en cours).

Refonte de .attr()

La méthode .attr() a été complètement refondue (résolvant ainsi près de 15 bugs en attente). De plus, elle a été significativement simplifiée et optimisée.

.toggle() peut désormais accepter plus de fonctions

Historiquement, la fonction .toggle() de jQuery acceptait deux fonctions (pour être alternées sur un rythme pair/impair). Cela a cependant été changé pour que n’importe quel nombre de fonctions puisse être fourni et alternées par un clic de souris.

$("div").toggle(function(){
 $(this).removeClass("three").addClass("one");
}, function(){
 $(this).removeClass("one").addClass("two");
}, function(){
 $(this).removeClass("two").addClass("three");
});

Vous pouvez désormais supprimer des fonctions .toggle() et .one()

function test(){ $(this).addClass("test"); }
$("div").one("click", test);
$("div").unbind("click", test);

$("div").toggle(test, test);
$("div").unbind("click", test);

.index() accepte des collections jQuery d’objets

La fonction .index() de jQuery vous a permis de trouver l’emplacement d’un élément DOM dans une collection jQuery. Vous pouvez désormais aussi spécifier une collection jQuery (le premier élément de celle-ci sera extrait et localisé dans la collection initiale).

var test = $("div.test");
$("div").index( test ) == 3

jQuery.makeArray peut convertir n’importe quoi en tableau

La méthode interne de jQuery .makeArray() convertit désormais n’importe quel objet semblable à un tableau en un nouveau tableau. De plus, il englobe tous les autres objets dans un tableau et retourne la collection résultante.

jQuery.makeArray( document.getElementsByTagName("div") )
// => [ div, div, div ]

jQuery.makeArray( true )
// => [ true ]

jQuery.makeArray()
// => []

beforeSend peut annuler un appel AJAX

La fonction de callback AJAX beforeSend permet aux développeurs d’exécuter un morceau de code avant qu’une requête ne soit envoyée. Désormais ce code vérifie aussi l’intégrité de certains paramètres et annule au besoin la requête AJAX résultante (ce qui est pratique pour des tâches comme la validation de formulaires).

$.ajax({
 beforeSend: function(){
   return $("#input").val() == "";
 },
 url: "test.php"
});

Les vitesses à découvert

JQuery dispose d’un ensemble de vitesse d’animation nommées (comme slow, fast, et default). Vous pouvez désormais fournir vos propres noms pour les vitesse d’animation, ou modifier celles qui existent, en manipulant l’objet jQuery.fx.speeds

jQuery.fx.speeds.slow = 1000;
$("#test").slideDown("slow");

Répondre à cet article

4 Messages de forum


Derniers commentaires