jQuery, le bulletin hebdomadaire

jQuery, bulletin n°18

Flattr this!

La semaine a été plutôt riche je trouve avec un peu plus de 250 messages laissés sur les forums officiels que votre serviteur a bien évidemment lu patiemment. D'habitude, on est plutôt sur une petite centaine de messages par semaine.

Une discussion particulièrement intéressante s'est lancée autour de l'idée de chaîner l'utilisation de Deffered pour une plus grande facilité d'utilisation. En se basant sur un exemple simple de deux requêtes imbriquées, l'initiateur de la discussion a très bien montré un rapide problème de lisibilité et de complexité, et a suggéré une solution assez élégante. La fonction "magique" s'appelle pour le moment Deferred.chain mais ce n'est pas encore définitif (autre propositions actuelles : filter, link et connect). Je vous propose de retrouver l'intégralité de cette discussion ici.

Un autre débat très intéressant a été lancé autour de pourquoi jQuery.Event se sert de preventDefault comme test d'instanciation. Une réponse simple a été fourni rappelant que tous les objets passant par jQuery.Event ne sont pas systématiquement des instances de jQuery.Event (un peu comme si toutes les poules pondaient des oeufs mais que tous les oeufs de poule ne sont pas forcément pondus par des poules, vous me suivez?). Du coup, pour éviter le cas d'un objet non jQuery.Event, il y a un test systématique à faire via preventDefault.

Certains suggèrent qu'utiliser instanceof aurait été plus judicieux et surtout aurait plus de sens, mais là c'est une question de performances. Vérifier l'existence d'une propriété est plus rapide et moins consommateur de mémoire que de contrôler le typage d'une variable sur une majorité de navigateurs.

Un utilisateur a proposé une ré-implémentation de jQuery, suggérant que pour les gros sites, celui-ci n'est pas assez bien organisé. Shoestring, sa version donc, pèse environ 1Ko et réduit considérablement les écritures jQuery a effectué comme le prouve l'exemple sur son site.

Autant cette démarche est intéressante et compréhensible, il est vrai que développer toute une application avec jQuery demande un minimum d'organisation, autant je ne suis pas convaincu par le style de sa réécriture. Pas assez verbeux, j'ai peur qu'on en arrive comme avec des commandes linux : un truc imbuvable et galère à reprendre pour un débutant. Défaut bien moins prononcé du côté de jQuery. Vous pouvez en discuter ici.

Du côté de jQuery mobile maintenant, il semblerait qu'il ne soit pas reconnu par Visual Studio 2010. Il faut ajouter le fichier téléchargeable ici pour qu'IntelliSense soit capable de le gérer.

Quelques autres sujets intéressants ont été abordé mais à mon avis, ils valent le coup d'un billet séparé pour mieux rentrer dans les explications. Donc prochainement, encore de nouveaux articles sur jQuery sur ce blog. Vous commencez sûrement à y être habitué 😉

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.
  • http://www.foxmask.info foxmask

    bonjour,

    A propos de Shoestring je ne pense pas qu’il devienne imbuvable syntaxiquement ; sinon Perl n’aurait pas eu le succès qui l’a eu vu sa « prose » qu’on pourrait qualifier d’ésotérique tellement de « magie » renferme certaines formes d’écriture 😉
    En tout cas si son projet marche ; tant mieux :)

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

    On est d’accord mais vraiment, j’ai peur qu’à trop raccourcir, ça devienne rapidement inaccessible. L’idée de jQuery, c’est d’écrire moins pour en faire plus, mais tout en restant compréhensible par un humain sans se servir d’un lexique systématiquement. Là j’ai presque envie de demander le man page de sa lib tellement ça me fait penser à des commandes 😉
    M’enfin, je lui souhaite bien entendu que son projet marche 😉

  • Adam Laughlin

    Mathieu, thank you for the link and well wishes. :)

    foxmask, thank you also. I don’t know French yet, so I’m using Google Translate. It is interesting. No one has called my code undrinkable before, but I guess it is :)

    Your comments made me realize I needed to rename some of the properties more intuitively. They also made me realize I need to finish the tutorial soon. Hopefully an example will better explain until then.

    Shoestring’s short syntax is an unexpected benefit. Its primary purpose is creating consistent code structure. Consistent code structure makes other things possible – like consistent file structure. On most sites two files are enough to keep things organized, so shoestring is designed to work with two. On each domain shoestring generates their names from the domain name and requests them. For example:

    mathieurobin.com.shoestring.controls.js
    mathieurobin.com.shoestring.plugins.js
    becomes:
    mathieu.com.shoestring.controls.js
    mathieu.com.shoestring.plugins.js

    One of my friends embeds the shoestring script on multiple CMSs and domains. She has 10+ domains, so 20+ files. Answering her questions is still easy. They always relate to one of two files with the same name, same structure, and same purpose, on all her sites. :)

    Hopefully that example helps. Shoestring’s goal is simple organization to reduce costs and increase productivity. Short syntax is an unexpected benefit. I would love to read your opinions on the tutorial (« man page ») when it’s ready. :)

    Adam

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

    ## Version française plus bas / French version follows ##
    Hello Adam, it’s a real pleasure to read you here.

    I think you’re true when you think about rename properties and functions more intuitively. For a few of a software features, I think you’ve a very good approach. If there are too much features, indeed jQuery can be difficult to read too, but « long name » and instructions block could keep a level of readability. I’m not sure of the same about Shoestring, I should really love if I (and my readers, I hope) can access to a big example.

    I will comment your tutorial as soon as it’s possible of course.

    Mathieu

    ## Version française / French version ##
    Salut Adam, c’est un plaisir de te lire ici.

    Je pense que tu as raison quand tu songes à renommer de façon plus intuitive des propriétés et des fonctions. Pour quelques fonctionnalités d’application, l’approche est la bonne. Si il y a trop d’instructions, jQuery peut devenir aussi difficile à lire certes mais conserve un certain niveau de lisibilité grâce aux « noms longs » de fonctions et aux blocs d’instructions. Je ne suis pas sûr qu’il en soit de même avec Shoestring, j’adorerais disposer (et mes lecteurs aussi, j’espère) d’un exemple plus imposant.

    Je commenterai bien entendu ton tutoriel aussi vite que possible.

    Mathieu

  • Adam

    Hey Mathieu,
    I didn’t see your reply until recently. Shoestring 0.3 is about ready for release. It is simpler and more focused, partially thanks to your feedback. There is also now only one function to call and one defaults object to configure. While I haven’t published the post yet, you’re welcome to check it out at .

    Cheers!
    Adam

    P.S. Now that I finished moving to Boston, more examples are coming this week. :)

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

      Hi Adam, I will have a look asap to Shoestring v0.3. Hope next week. Thanks ! :)

Articles liés