Atelier Webperf - Fermé

[Recommendations] Criterion N° 502 - Les requêtes sur le DOM sont ciblées à l'aide d'un identifiant.

Déposer un commentaire

  • 13 April 2012 19:38 - Laurent Denis (1) Reply

    Si j'ai bien suivi, l'idée serait plus largement que chaque requête qui peut commencer par un identifiant restreignant le champ le fasse, ce qui ne pose pas de souci propre à jQuery.

    • 16 April 2012 08:47 - Jérémie Patonnier (1) Reply

      Ok, je pense que j'ai un problème lié au mot "requêtes" qui, dans un contexte DOM" ne veux pas dire grand chose pour moi. Pour ce que j'en sait, le DOM "s'explore" au travers de son API. EN conséquence, soit il y a des BP sur l'usage de l'API DOM et dans ce cas, il faut qu'on soit plus précis. Soit il y a quelque chose d'autre derrière cette BP et dans ce cas, il va falloir l'expliciter parce que en l'état, si je devait évaluer cette BP, je ne serait pas quoi faire.

      Par exemple, est-ce que je doit invalider (ou pas) la BP si je rencontre des trucs de ce genre :

      - var foo = document.getElementsByTagName("p")[0];
      - var foo = document.getElementById("bar").getElementsByTagName("p")[0];
      - var foo = document.querySelector("#bar p")[0];

      • 18 April 2012 12:27 - Jean-Pierre Vincent (1) Reply

        encore une fois, il ne me semble pas possible de répondre automatiquement à cette question. C'est de l'optimisation de code, et c'est forcément spécifique au métier ou à la tâche que le code essaye de réaliser, de manière efficace ou pas.
        Cette règle a été mise là je pense pour contrer la mauvaise utilisation d'outils trop puissants comme les sélecteurs jQuery.
        On peut remplacer {requête DOM} par {recherche DOM} si on veut faire précis. Où on peut changer pour quelque chose de plus générique : {Les recherches et manipulations DOM sont faites avec parcimonie}

        • 04 May 2012 17:24 - Fabrice Bonny (1) Reply

          Quelque chose comme {Les sélecteurs DOM commencent par un identifiant chaque fois que c'est possible} ?

          • 07 May 2012 15:01 - Laurent Denis (1) Reply

            J'ai un doute sur la vérifiabilité : la présence d'un sélecteur ID sur la page X peut être trompeuse et conduire à invalider le critère alors que le sélecteur est volontairement plus générique en l'absence d'ID dans d'autres pages.

            • 20 June 2012 13:05 - Fabrice Bonny (2) Reply

              Oui, on se dirige vers une bonne pratique qui demande des heures de vérification pour un résultat minime.

              • 21 June 2012 20:32 - Éric Daspet (1) Reply

                Est-ce que opquast ne risque pas d'être aussi utilisé comme guidelines lors d'une conception ? auquel cas c'est une règle pertinente à garder en tête

              • 08 October 2012 13:31 - Jean-Pierre Vincent Reply

                D'expérience, le résultat n'est pas du tout minime sur les navigateurs qui n'avaient pas .querySelectorAll (IE7 et &lt;)<div>Sur les pages d'aujourd'hui faites avec du sélecteur jQuery qui question un gros DOM, ça peut facilement te freezer la page pendant quelques secondes</div>

  • 13 April 2012 16:33 - Jérémie Patonnier Reply

    Je ne suis pas sur de bien comprendre ce que cela implique. s'agit-il de prohiber l'usage de .querySelector au profit de .getElementById ou bien s'agit-il plus généralement de décourager toutes les API DOM au profit du seul .getElementById ?

    En creux, j'ai une autre question: comment mesure-t-on cette BP? Est-ce que l'usage d'un framework (au hasard jQuery) rend cette BP automatiquement invalide ?