Developpez.com - Rubrique Dév. Web

Le Club des Développeurs et IT Pro

jQuery 1.6.1 RC1 est disponible

Une API de plus en plus lourde et complexe ?

Le 2011-05-10 21:04:15, par danielhagnoul, Rédacteur
jQuery 1.6.1 RC1 est disponible
Une API de plus en plus lourde et complexe ?

Pour utiliser cette version candidate, il suffit d'inclure un appel au serveur de code jQuery dans votre page web : <script charset="utf-8" src="http://code.jquery.com/jquery-1.6.1rc1.js"></script>.

Voir : Comment installer la bibliothèque jQuery ?

En passant directement de la version 1.5.2 à la 1.6.1 vous échapperez au problème de rétro compatibilité dû à la réécriture de la méthode attr() et à l'introduction de la méthode prop() dans la version 1.6 de jQuery.

On pourra donc continuer à utiliser attr() comme en 1.5.2, ou prendre la bonne habitude de distinguer entre le code HTML (attribut) et la propriété du DOM.

Source : http://blog.jquery.com/2011/05/10/jq...rc-1-released/

Opinion très personnelle :

En cédant aux récriminations des programmeurs qui devaient revoir leurs codes pour l'adapter à la version 1.6, et en collant une rustine sur la méthode attr(), je crois que l'équipe de développement montre qu'elle agit de plus en plus dans la précipitation.

Elle ne prend plus suffisamment de temps pour tester ses versions "beta" et "release candidate" et apporter les modifications demandées par les testeurs.

En surchargeant le code jQuery de "patchs" pour plaire à chacun, elle rend l'API jQuery de plus en plus complexe et de plus en plus lourd inutilement.
  Discussion forum
11 commentaires
  • Pilru
    Membre éclairé
    Envoyé par barriton1
    Ca quand même c'est trop fort... Patché quelque chose qui vient de sortir 15 jours avant !... Pour revenir en arrière, du grand n'importe quoi !
    L'erreur a été commise en 1.6... Casser la compatibilité sur attr() brutalement, rendait le passage à cette version extrêmement difficile.

    Maintenant, si l'équipe n'a pas dans l'idée de différer la modif de attr(), alors oui c'est idiot.

    La 1.6 est arrivée trop vite...
  • danielhagnoul
    Rédacteur
    Bonsoir

    L'examen de la version non compressée et "gzipée" est plus parlant.

    • La version 1.6.1, sortie le 2011-05-12, pèse 229 Ko.
    • La version 1.4.2, sortie le 2010-02-19, pèse 155 Ko.
    • La version 1.3.2, sortie le 2009-01-20, pèse 120 Ko.


    Entre la 1.3.2 et la 1.6.1, le nombre et l'importance des améliorations apportées comptent pour beaucoup dans le gain de poids. La nécessité de maintenir la compatibilité avec les anciennes versions et les navigateurs obsolètes a sans doute un faible impact, mais non nul.

    Vu l'existence des modules, il est sans doute possible de se construire un jQuery à la carte, mais c'est la pire des solutions du point de vue de la compatibilité.

    Les modules (extrait du make file, https://github.com/jquery/jquery/blo...aster/Makefile) :
    BASE_FILES = ${SRC_DIR}/core.js\
    	${SRC_DIR}/deferred.js\
    	${SRC_DIR}/support.js\
    	${SRC_DIR}/data.js\
    	${SRC_DIR}/queue.js\
    	${SRC_DIR}/attributes.js\
    	${SRC_DIR}/event.js\
    	${SRC_DIR}/selector.js\
    	${SRC_DIR}/traversing.js\
    	${SRC_DIR}/manipulation.js\
    	${SRC_DIR}/css.js\
    	${SRC_DIR}/ajax.js\
    	${SRC_DIR}/ajax/jsonp.js\
    	${SRC_DIR}/ajax/script.js\
    	${SRC_DIR}/ajax/xhr.js\
    	${SRC_DIR}/effects.js\
    	${SRC_DIR}/offset.js\
    	${SRC_DIR}/dimensions.js
    
    MODULES = ${SRC_DIR}/intro.js\
    	${BASE_FILES}\
    	${SRC_DIR}/outro.js
    À mon avis, la meilleure solution serait de sortir une version "HTML5-CSS3" destinée exclusivement aux navigateurs compatibles, après la sortie de IE10. Cette version ne tenant plus compte des navigateurs obsolètes et des anciennes versions de jQuery.
  • lochnar
    Membre régulier
    Le gros problème de jQuery c'est que tout le monde attend que ça fasse le café... et l'utilisent même lorsque l'intérêt est discutable:
    Même s'il semble s'améliorer de version en version, le temps de réponse de jQuery pour réaliser des actions simple reste supérieur à une fonction javascript toute bête codée en 2min.

    Par contre, il est clair que jQuery nous retire de belles épines du pied lorsqu'il s'agit de mettre des effets ou interactions un peu partout qui fonctionne généralement à l'identique quelque soit le navigateur
  • RapotOR
    Membre éclairé
    Je crois que ce serait pas mal d'avoir jQuery sous forme de bundles.

    On aurait un jQuery-Core avec les choses vraiment basiques.
    Ensuite, on pourrait choisir d'inclure telle ou telle fonctionnalités (par groupes par exemple).

    Toutes les fonctionnalités ne sont pas nécessaires à chaque projet comme l'indique lochnar. Je pense que ce serait une update puissante qui contenterais tout le monde: les personnes pointilleuses et les autres!
  • molokoloco
    Futur Membre du Club
    Oui, jQuery veux contenter tout le monde, et donc il y aura toujours un petit bout de code qui ne servira pas.. mais pour 80Ko, soit un jpeg de 200*200 Pixels, on je va pas chipoter ^^.. ou alors on retourne à l'age du minitel

    Sur le repository du dev jQuery, on peu retrouver indépendamment tous les modules intégré au "core" https://github.com/jquery/jquery

    Sans parler du CDN Google pour jQuery http://code.google.com/intl/fr-FR/ap.../devguide.html
  • kohsaka
    Membre confirmé
    Je suis en train de réaliser un nouveau projet et je me demande quelle version je dois utiliser désormais ?

    A mon sens, la bonne solution est d'utiliser la 1.6, qui fait "correctement les choses", mais j'aimerais votre avis sur la question car je ne sais pas s'ils vont continuer dans cette voie pour leurs prochaines releases ou s'ils comptent améliorer la rustine qu'ils ont fait dans la 1.6.1.

    Ne pas prendre la 1.6.1 m’empêche aussi de bénéficier des quelques corrections de bugs.

    (Désolé si je n'aurais pas dû poser cette question ici, mais ça ne justifiait pas l'ouverture d'un nouveau topic d'après moi)
  • danielhagnoul
    Rédacteur
    Bonsoir

    Pour les tests et l'élaboration d'un nouveau site, vu la liste impressionnante des corrections de bogue apportées entre chaque version mineure, je conseille d'utiliser la dernière version stable en précisant toujours son numéro de version. Pas d'adoption automatique et silencieuse.

    Pour les sites en production, comme il peut toujours y avoir des problèmes de rétrocompatibilité à la sortie d'une nouvelle branche (passage de la 1.X à la 1.Y) et que l'équipe de développement sort en général et dans un délai assez court deux versions de corrections (1.Y , 1.Y.1, 1.Y.2), j'attends quelques semaines après la sortie de la version 1.Y.2 pour tester le changement avant de l'adopter.

    En bref, aujourd'hui, pour un nouveau site je recommande la 1.6.1 et pour un site en production je recommande d'attendre quelques semaines après la sortie de la 1.6.2.

    Je vous recommande d'adopter la méthode prop() et les changements qu'elle apporte plutôt que de vous fier à une rustine qui semble (voir message http://www.developpez.net/forums/d10...-1-disponible/) donner un comportement différent selon les versions d'IE.
  • kohsaka
    Membre confirmé
    Merci pour tes éclaircissements
  • barriton1
    Nouveau Candidat au Club
    Ca quand même c'est trop fort... Patché quelque chose qui vient de sortir 15 jours avant !... Pour revenir en arrière, du grand n'importe quoi !
  • Pierrot0459
    Membre à l'essai
    Envoyé par lochnar
    Le gros problème de jQuery c'est que tout le monde attend que ça fasse le café... et l'utilisent même lorsque l'intérêt est discutable:
    Même s'il semble s'améliorer de version en version, le temps de réponse de jQuery pour réaliser des actions simple reste supérieur à une fonction javascript toute bête codée en 2min.

    Par contre, il est clair que jQuery nous retire de belles épines du pied lorsqu'il s'agit de mettre des effets ou interactions un peu partout qui fonctionne généralement à l'identique quelque soit le navigateur
    pas d'accord
    JQUERY fait le café
    le comble, c'est de penser que jquery n'est à que pour faire des effets
    a++