jQuery va se mettre au régime !
Suppression des méthodes obsolètes et passage en plug-in de celles non utilisées dans le corps

Les rubriques (actu, forums, tutos) de Développez
Réseaux sociaux


 Discussion forum

Le 10/11/2011, par danielhagnoul, Rédacteur
jQuery va se mettre au régime !
Suppression des méthodes obsolètes et passage en plug-in des méthodes non utilisées dans le corps

Pour fêter ses 5 ans, l'équipe de développement de jQuery va le faire maigrir en supprimant les méthodes obsolètes et en transformant en plugins les méthodes utiles qui ne sont pas utilisées dans le corps de jQuery.

Bien entendu, ces modifications seront progressives, on passera par l'étape de la dépréciation avant la suppression.

Évolution du "poids" des versions jQuery

Déprécier quoi ?

  • Une méthode qui ne reflète plus les pratiques recommandées.

  • Une méthode impopulaire, déroutante, inefficace ou qui a révélé son inefficacité lors de son utilisation en production.

  • Une méthode qui présente des insuffisances et qui est difficilement améliorable.

  • Une méthode dont la suppression améliore le code ou l'usage de jQuery.



Les modifications déjà décidées :

  1. live() et die() sont remplacés par on() et off() ;

  2. la copie des évènements non standardisés dans l'objet event de jQuery. Suppression dans jQuery 1.8, ils seront alors accessibles par event.originalEvent.Name au lieu de event.Name ;

  3. pour faire de l'objet jqXHR un objet différé comme les autres, les méthodes error(), successs() et complete() sont dépréciées. On recommande l'usage des méthodes standards d'un objet différé : fail(), done() et always() ;

  4. les booléens objDeferred.isResolved() et objDeferred.isRejected() sont dépréciés. Suppression dans jQuery 1.8, on recommande l'usage de la nouvelle méthode objDeferred.state() ;

  5. l'utilisation de la méthode attr("value") sur un tag "input" est dépréciée depuis longtemps, on doit utiliser val(). Suppression dans jQuery 1.8 ;

  6. pour la méthode closest(), la signature closest(array) est dépréciée et sera supprimée dans jQuery 1.8 car cette signature retourne un array au lieu de l'objet jQuery ;

  7. les données liées à un événement et stockés dans data("events"). Utilisation dépréciée en 1.7 et suppression en 1.8 ;

  8. jQuery.sub() deviendra un plugin en jQuery 1.8 car bien que très utile pour créer une version privée de jQuery pour les plugins, il n'est pas utilisé par le coeur de jQuery.



IE6, IE7 et IE8

Il existe une série de "rustines" spécifique à ces versions de IE, mais il est impossible d'y toucher tant que le support d'IE8 est requis.

L'avenir ?

Les nouvelles propositions d'améliorations du code de jQuery seront examinées du point de vue de ce qu'elle apporte, mais aussi de ce qu'elle coûte en performances (vitesse, poids).

Lorsque cela sera possible, les nouveautés seront extérieures au coeur de jQuery (plugins, événements spéciaux, etc.).

Source


 Poster une réponse

Avatar de grunk grunk
Modérateur
le 10/11/2011 10:26
C'est pas un mal de faire mincir un peu la lib. Quand on voit le nombre de projet qui embarque 200Ko de js pour juste faire une requête ajax ...

Par contre j'aimerais bien un jquery builder comme on peut en trouver chez Mootools.
On choisi les options que l'on veux , les dépendances se sélectionnent automatiquement et on génère un jquery aux petit oignons avec juste le nécessaire.
Avatar de Wormus Wormus
Membre confirmé
le 10/11/2011 10:43
Dommage pour le point 8, je l'utilise beaucoup depuis que c'est sorti, m'enfin tant qu'on y a toujours accès, même si c'est à travers d'un plugin à part, ça me va.
Pour le reste, rien qui me gène.

L'initiative est plutôt bonne, faire un peu de ménage, ça peut pas faire de mal.


Citation:





Envoyé par grunk
Voir le message

Par contre j'aimerais bien un jquery builder comme on peut en trouver chez Mootools.
On choisi les options que l'on veux , les dépendances se sélectionnent automatiquement et on génère un jquery aux petit oignons avec juste ce ont on à besoin.



Assez d'accord !
Avatar de MarvinLeRouge MarvinLeRouge
Invité régulier
le 10/11/2011 11:25
Correction sur le point 5 : ceci ne s'applique qu'à l'attribut value, on peut toujours utiliser attr sur un input pour d'autres attributs.
Avatar de Code62 Code62
Membre émérite
le 10/11/2011 11:42
Merci des infos danielhagnoul, et merci de la correction MarvinLeRouge, mes yeux me sont pratiquement sortis de la tete quand j'ai vu ce point 5 ^^"

Pour le reste: je ne me trompe pas en pensant que les méthodes telles que "done" et "fail" existent déjà, et qu'on peut donc commencer à adapter son code sur la version actuelle, sans attendre la 1.8 ?
Avatar de Bovino Bovino
Responsable Développement Web
le 10/11/2011 11:48

Citation:





Envoyé par Code62


Pour le reste: je ne me trompe pas en pensant que les méthodes telles que "done" et "fail" existent déjà, et qu'on peut donc commencer à adapter son code sur la version actuelle, sans attendre la 1.8 ?



Non, tu ne trompes pas, c'est même recommandé de le faire
Avatar de danielhagnoul danielhagnoul
Rédacteur
le 10/11/2011 11:56
Bonjour

@grunk : il existe des chargeurs de code. Exemple requirejs : http://requirejs.org/

@wormus : utiliser un plugin au lieu d'un code inclus dans le code de jQuery c'est toujours un peu plus "lourd" et cela diminuera peut-être très légèrement les performances.

@marvinlerouge : oui ! j'aurais du écrire attr("value") comme dans la source, mais le bic a eu un raté. C'est corrigé, merci !

@code62 : oui !
Avatar de amille44420 amille44420

le 10/11/2011 12:14
Je ne peut que +1 cette "innovation". Je suis loin d'être contre l'idée de alléger jQuery par la suppression des méthodes déprécié. mais oui à quand un builder comme pour Mootools. D'ailleurs c'est l'un des point fort qui fait que je préfère exploiter Mootools que jQuery. Je trouve celui ci plus léger et surtout son builder est bien plus attirant A chacun son framework JS hein ^^
Avatar de T`lash T`lash
Membre éclairé
le 16/11/2011 11:53

Citation:




Pour fêter ses 5 ans, l'équipe de développement de jQuery va le faire maigrir en supprimant les méthodes obsolètes et en transformant en plugins les méthodes utiles qui ne sont pas utilisées dans le corps de jQuery.


Le mot "corps" est utilisé plusieurs fois et justement remplacé à la fin de l'article par le terme "cœur" qui est plus approprié.
Je crois qu'il aurait été plus correct de l'orthographier "core".
 
 
 
 
Partenaires

Hébergement Web