Logo_jQuery

jQuery 89, quelques nouvelles

Flattr this!

Salut à tous, désolé pour la flemme d'hier. Ça va bientôt faire deux ans, c'est devenu une habitude mais c'est pas pour autant que c'est toujours facile à faire.

L'annonce de jQuery UI 1.8.24 a été faite par Scott González.

Dans cette version de maintenance, des bogues ont été corrigés pour Datepicker, Draggable, Droppable et Sortable. Au passage, le support de jQuery core 1.8.2. Ils ont bon espoir de sortir la 1.9 asap. Voilà le changelog complet si ça vous intéresse.

Vous le savez, même si j'apprécie énormément le développement avec jQuery, celui-ci doit se faire avec raison. Encore faut-il que ce soit à raison. Ce JSPerf montre bien ici par exemple l'intérêt de travailler avec du code natif quand jQuery n'est pas absolument nécessaire.

Et c'est tout pour cette semaine. Désolé mais la semaine a été plutôt légère. Merci à tous de toujours être autant à me lire.

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.
  • Xavier

    Bonjour Mathieu,

    Même si le post est cours, c’est toujours un plaisir de te lire et d’être au courant des news.

    Cordialement,
    Xavier.

    • http://www.mathieurobin.com/ Mathieu

      Et c’est toujours un plaisir de lire de tels commentaires. Merci :-)

  • DamsFX

    Mathieu,

    C’est pas qu’on te donnerais pas la main … mais notre place de lecteur est trop confortable !!
    Merci pour la veille que tu fait sur jQuery.

    Dam’s

    • http://www.mathieurobin.com/ Mathieu

      Merci à toi ! En fait le plus dur dans l’affaire est surtout de se coltiner les dizaines de flux rss dans différentes langues. Vous n’imaginez pas le nombre de choses débiles que je vois passer. Tiens, faudrait que je fasse des billets sur le sujet à l’occasion. Histoire de changer un peu :)

  • http://www.pure-tentation.fr syndrael

    Pfff.. maintenant on ne va plus chercher des expert jQuery mais des experts en désossage de code jQuery pour l’optimiser.. Enfin, d’un autre côté est-ce que ça gène vraiment la navigation cette non-optimisation ?
    S.

    • http://www.mathieurobin.com/ Mathieu

      Oui la question des performances est importante, elle est meme clé et y compris dans des domaines dans lesquels on ne s’y attend pas comme l’écologie. Je vais surement faire un article sur le sujet, ta question nécessite une réponse publique je pense.

  • N-D

    Hmm
    http://jsperf.com/jquery-this-caching/8
    Je sais pas ce que ça vaut tho :).

    • http://www.mathieurobin.com/ Mathieu

      Il y a un défaut d’optimisation dans ton cas natif. A chaque itération de la boucle, la borne de sortie est recalculée. Niveau perfo, c’est une bonne façon de tout plomber.

      • N-D

        Pas compris ?

        • http://www.mathieurobin.com/ Mathieu

          Le truc c’est qu’il faut comparer des scripts optimisés d’un côté comme de l’autre. Dans ton exemple, le script JS natif n’est pas optimisé. Tu re-déclares la variable elements à chaque tour. Après dans ta déclaration de boucle, dans la condition d’arrêt, tu fais ça :
          (elements = document.getElementsByClassName(« myElement »)).length
          Sauf que ce calcul est effectué à chaque itération de la boucle, il faut le mettre en cache avant de commencer ta boucle.

        • N-D

          Même si les chiffres approuvent, j’ai toujours appris que

          `for (a; b; c)` où a : partie statique évaluée une unique fois, b, comparaison pour savoir si on continue d’itérer et c l’instruction à effectuer à la fin de chaque itération ?

          • http://www.mathieurobin.com/ Mathieu

            Pour être exact :

            • a est évalué au démarrage de l’instruction for et plus après ;
            • b est évalué à chaque itération de boucle, d’où l’importance de le mettre en cache avant l’instruction for, pour ne pas avoir à refaire un calcul inutile à chaque tour ;
            • c est effectivement la méthode exécutée à chaque itération.

            Cette spécificité de b n’est pas vraie dans tous les langages mais vraie en JS (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for, partie Parameters > condition)

          • N-D

            Hors, dans ma boucle :
            `var elements, i = 0, l = (elements = document.getElementsByClassName(« myElement »)).length; i < l; i += 1`
            La partie a est : `var elements, i = 0, l = (elements = document.getElementsByClassName("myElement")).length`
            La partie b est `i < l`
            Et la partie c est : `i += 1` non ?

            Je viens de tester (version 10) et j'ai les mêmes résultats en mettant un cache avant.

          • http://www.mathieurobin.com/ Mathieu

            Juste pour te tenir au jus : j’ai pas le temps aujourd’hui mais je regarde asap les détails.

          • http://www.mathieurobin.com/ Mathieu

            Désolé, du coup, j’ai oublié. Je regarde ça dans le weekend

  • N-D

    Pas de problèmes ;).

Articles liés