Logo_jQuery

Chroniques jQuery, épisode 111

Flattr this!

Roh mince, l'épisode 111, le mois d'avril, le soleil, tout ça :p Et 4 jours depuis la dernière chronique. Quoi de neuf cette semaine ?

Rien d'officiel. Ça c'est dit.

Sam Deering, rédacteur de jQuery4U, a fait un point rapide sur l'importance de la mise en cache des sélecteurs. C'est quelque chose dont on parle souvent mais qui n'est malheureusement toujours pas assez appliqué.

La semaine dernière, j'évoquais une interview de Dave Methvin, cette semaine, NetTuts+ a rencontré John Resig ("le créateur"). A savoir que l'interview n'est pas très porté sur jQuery puisque John a passé la main pour se concentrer sur d'autres projets.

Je parlais justement la semaine dernière d'une sidebar façon Facebook et que j'aurais aimé en trouver une façon WordPress. J'ai trouvé jQuery SideBar, un plugin de sidebar. C'est pas encore exactement ça mais dans l'idée, on s'en rapproche un peu. Bon courage pour les yeux par contre, c'est coloré :)

Pour ceux que ça intéressent, je me suis un peu penché sur les formations existantes (hasard des choses en réalité). Je suis tombé chez AlterWay qui en propose une pour jQuery et jQuery UI.

A surveiller sur le web : La #GuezNet. C'est mon ami Julien qui la tient. Vu qu'il dev "assez régulièrement" avec jQuery, il compte bien en parler de temps en temps. Ça c'est le bonus spécial pour me faire pardonner les deux dernières semaines.

Je finis donc en vous rappellant que vous avez accès à toutes les ressources de cet article depuis un carnet de notes dédié partagé sur Evernote. A la semaine prochaine 😉

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. Vous pouvez la mettre en favoris avec ce permalien.
  • NicoD

    Bonjour Mathieu,

    Tout d’abord, merci pour ton blog : toujours intéressant et des articles sortent très régulièrement. Ca fait quelques temps que je le parcours, et j’apprécie ! :p

    J’interviens pour ce qui concerne le « cache » sur les sélecteurs. J’ai un peu de mal avec la « démonstration » de Sam Deering. Très exactement, de ce que j’en comprend, ce qu’il fait ne prouve rien du tout. Sauf que je n’ai très probablement pas ton niveau, donc tu vas m’éclairer 😀
    D’un côté, il déclenche le timer, puis il parcourt tous ces éléments et leur applique un traitement, et stop le timer.
    De l’autre côté, il parcourt tous les éléments, les met en cache, déclenche le timer, applique un traitement à tous les éléments, et stop le timer.
    Sauf que dans le second cas, le timer… Il devrait être déclenché AVANT la mise en cache pour que ce soit équitable… Non ? J’ai un peu l’impression de lire « bon, pour gagner le marathon, il faut aller jusqu’au 42ème km. On a 2 concurrents, le 1er commence au kilomètre 0, le 2nd commence au kilomètre 41 », et pour les résultats « Mais c’est extraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaordinaire, le 2nd a mis 20 fois moins de temps pour aller au 42 ème km »… -__- (je vous épargne la petite interview d’après course avec Nelson ^^)

    Et pis même, la notion du « nombre de traitements » n’est pas abordé, j’ai du mal à voir comment le cache peut avoir un intérêt notable lorsqu’il n’y a qu’1 seul parcours des noeuds nécessaires.
    Tu mets en cache tes noeuds parce que tu vas faire 3 passages successifs dessus, ok ça me va, c’est tout l’intérêt du cache, factoriser un maximum d’opérations pour gagner du temps. Mettre en cache des noeuds pour les parcourir une fois… C’est limite contre-productif. Déjà parce que tu vas passer du temps pour la création du cache, et ensuite parce que tu vas devoir reparcourir ce cache (alors que tu as déjà parcouru les noeuds pour la création de ce cache !). (Toujours le cas où il n’y a qu’1 seul et unique traitement à réaliser sur l’ensemble des noeuds, hein ;)).

    Bref, je reste septique sur la « démonstration » de Sam Deering… :S

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

      Faudra que je fasse un JSperf pour expliquer le truc 😉 Mais oui, le timer aurait du être déclenché avant.