Logo_jQuery

Chroniques jQuery, épisode 113

Flattr this!

La planète s'est motivée cette semaine pour me donner plein de boulot pour cette chronique. Sérieusement, vous avez fait un concours, non ?

Sortie de jQuery 2.0 !

J'ai pas trop vu le truc venir, c'est un peu arrivé sans annonce, même si il y a eu des beta. Avant de rentrer dans le détail, vous pouvez retrouver l'annonce ici. Je vous laisse le lien vers l'annonce de la beta 3 (même si inutile maintenant)

Maintenant, voyons ce qu'on a là dedans :

  • fin du support de IE 6, 7 et 8 (ça, tout le monde vous l'a dit) ;
  • fin à venir du support des Android/webkit 2.x (le marché est encore trop important mais ils font sauter asap) ;
  • 12 % moins "lourde" que la version 1.9.1.

Il n'est pas recommandé d'utiliser jQuery 2 pour tout et n'importe quoi en production. Pour le moment, l'équipe recommande de l'utiliser pour des utilisations modernes, soit pour :

  • Google Chrome add-ons
  • Mozilla XUL apps and Firefox extensions
  • Firefox OS apps
  • Chrome OS apps
  • Windows 8 Store (“Modern/Metro UI”) apps
  • BlackBerry 10 WebWorks apps
  • PhoneGap/Cordova apps
  • Apple UIWebView class
  • Microsoft WebBrowser control
  • node.js (combined with jsdom or similar)

Dans les autres changements, vous pouvez construire votre propre version de jQuery à partir de 12 modules éjectables selon vos souhaits. En plus d'un coeur immuable bien entendu. Les 12 modules sont les suivants :

  • ajax : tout le moteur AJAX, donc : $.ajax(), $.get(), $.post(), $.ajaxSetup(), .load(), transport, et les alias d'évènements ajax tels que .ajaxStart() ;
  • ajax/xhr : la partie XMLHTTPRequest seule ;
  • ajax/script : la partie Ajax qui permet de récupérer des scripts ;
  • ajax/jsonp : la gestion de JSONP (je prépare une article là dessus d'ailleurs) ;
  • css : la méthode .css() plus toutes les parties non-animées de .show(), .hide() et .toggle() ;
  • deprecated : tout ce qui est deprecated mais pas encore supprimé; pour le moment, il ne reste que .andSelf() ;
  • dimensions : méthodes .width() and .height(), incluant les variations inner- et outer- ;
  • effects : la méthode .animate() et ses raccourcis comme .slideUp() ou .hide("slow") ;
  • event-alias : tous les déclencheurs d'évènements et alias de méthodes concernant les évènements, tels que .click() ou .mouseover() ;
  • offset : méthodes .offset(), .position(), .offsetParent(), .scrollLeft() et .scrollTop() ;
  • wrap : méthodes .wrap(), .wrapAll(), .wrapInner() et .unwrap() ;
  • sizzle : le moteur de sélection d'éléments, permet d'utiliser un mini-moteur basé sur la méthode native querySelectorAll.

L'exclusion de tous ces modules peut mener à un poids minimal de 10 Ko, une fois minifiée et gzippée. Sur le dépôt GitHub, vous pouvez retrouver comment construire votre version.

Comme déjà dit dans le passé, je ne recommande pas l'usage de cette version. A mon sens, utiliser les CDN (de préférence celui de Google pour jQuery) est un meilleur choix. Ceci dit, si vous utilisez en interne, pour du minifié, et dans d'autres cas, ça peut être utile. Si vous souhaitez bosser proprement avec votre version perso, je vous conseille cependant de virer les modules deprecated, effects, event-alias et sizzle. Ce sont ces trucs inutiles et ne faisant que dans la fioriture. Si vous courrez après le poids et la performances, ce sont ces modules qui devraient être les premiers à sauter.

Petite précision, si comme moi vous avez besoin de continuer le support de IE 6, 7 et 8, vous pouvez rester sur la version 1.9. Les modifications apportées dans l'objectif de la 2.0 seront aussi portées dans la version 1.10. Version qui conservera aussi le support des navigateurs obsolètes.

Même si il n'y a rien de nouveau coté jQuery Mobile ou UI dans les fils officiels, je ne les oublie pas. Et .Net magazine non plus. Ils ont publié un article expliquant les 5 raisons pour lesquelles vous devriez utiliser jQuery Mobile.

Sam Deering de jQuery4U a publié ses résultats de tests de performances. Il a comparé $(this).attr('id') et this.id.

Passons aux tutoriels. Je vous en suggère un qui fait le point sur les évènements personnalisés. A priori, la version 2 de jQuery ne change pas la donne quand à ces explications.

Didier Mouronval a publié, sur Developpez.com, un tutoriel pour construire des sélecteurs personnalisés.

Coté tutoriels, il y a Snap.js qui me plait bien, ça c'est pour les menus latéraux sur lesquels je fais une fixette depuis quelques semaines.

Je vous propose un petit thème pour jQuery Mobile nommé nativeDroid. Il est optimisé pour jQuery Mobile 1.3. Il a l'air bien sympa. (private joke : coucou AG :p)

Les officiers de police de New York travaillent sur un nouveau projet. Ils utilisent une appli jQuery Mobile qui leur donne accès notamment à l'historique judiciaire des gens dans le coin etc.

Et pour terminer, voilà pourquoi vous devriez arrêter d'utiliser jQuery. Ce n'est pas un troll, juste une piqûre de rappel. jQuery ne doit pas servir dans tous les cas, toutes les conditions. Il faut savoir quand utiliser un 4*4 ou un scalpel.

Flattr this!

A propos de Mathieu

Ingénieur développeur web dans la vente par correspondance B2B, adepte de nouvelles technologies et d'innovation. Vous pouvez aussi me retrouver sur Twitter @mathrobin
Cette entrée a été publiée dans jQuery, avec comme mot(s)-clef(s) , , , , , , . Vous pouvez la mettre en favoris avec ce permalien.

Articles liés