Atelier Webperf - Fermé

[Refused] Criterion N° 800 - Les scripts non utiles immédiatement sont chargés juste avant leur utilisation.

Déposer un commentaire

  • 13 April 2012 16:22 - Jérémie Patonnier (2) Reply

    Juste un question pratique, comment mesurez-vous "l'utilité immédiate d'un script" ?

    Comment cette BP va se conscilié avec une stratégie du type optimisation du cache (je charge 150Ko de JS que je met en cache la première fois pour ne plus avoir à le charger ensuite) ou j'accepte de dégradé légèrement les perf du premier chargement au bénéfice des suivants ?

    Il me semble que ça risque d'être un cas assez commune pour les applications Web, non?

    • 16 April 2012 09:00 - Boris Schapira Reply

      La question de fond est de savoir dans quelle mesure on doit privilégier une stratégie d'optimisation du cache, qui va certes améliorer l'UX globale mais détériorer le premier chargement. Sur un site à stratégie mobile forte, c'est une cata.

      Ou alors il faut qu'on ajoute une nouvelle BP qui explicite la nécessité de créer des bundles de JS suivant la durée de cache. Ainsi on peut avoir un JS "Core" pour le site, qui correspond à la plus longue durée de cache et aux fonctions les plus "utiles", puis un ou deux aux JS périphériques.

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

      pour rebondir là dessus : il n'y a pas de moyen automatisé pour gérer ces cas, c'est au jugé

      • 20 June 2012 13:03 - Fabrice Bonny (1) Reply

        Cette bonne pratique sent le sapin, a priori. Le côté "non utile immédiatement" la rend plus ou moins invérifiable.

        • 20 June 2012 13:25 - Jérémie Patonnier (1) Reply

          Je ne suis pas d'accord. C'est certes mal exprimé, mais je ne pense pas qu'on doivent l'enterrer si vite pour cette raison. La notion de chargement "à la demande" est une méthode d'optimisation très efficace et qui est bien une "bonne pratique".<br><br>Pour ce qui est de la formulation, je propose : {Les scripts sont chargés au moment ou l'on en a besoin}<br><br>Cependant, je mettrai cette BP en niveau 3 car il s'agit vraiment de micro optimisation requérant un savoir faire important en JS.<br><br>De même je reste toujours assez dubitatif sur les moyens de contrôle. J'ai du mal à voir comment ça va être vérifiable.

          • 20 June 2012 17:14 - Fabrice Bonny Reply

            Comment peut-on ne pas la déclarer morte si tu confirmes ne pas savoir comment la vérifier ? ;-)

  • 13 April 2012 11:55 - Boris Schapira (1) Reply

    Je trouve que cette formulation distingue deux familles de scripts, ce qui seraient utiles tout de suite et les autres. Est-ce qu'on ne peut pas uniformiser la règle avec par exemple : "Les scripts doivent être chargés au besoin, juste avant leur utilisation."

    • 18 April 2012 12:22 - Jean-Pierre Vincent Reply

      cette formulation me semble bonne car elle couvre les 2 cas : celui où on va vouloir charger ou précharger des scripts utiles à l'affichage de la page, et celui où on va charger au dernier moment un script qui n'est par exemple utile que dans une popin, un autocomplete etc..

  • 12 April 2012 08:26 - Nicolas Hoizey (1) Reply

    Éviter de charger dès le début si non nécessaire est une BP, mais charger «juste avant» l'utilisation, ça peut vouloir dire retarder l'utilisation à cause du chargement.

    • 12 April 2012 14:21 - Jean-Pierre Vincent Reply

      ça peut retarder, mais probablement très peu car ça va ne se faire que sur une seule fonctionnalité. Tandis que charger toutes les fonctionnalités au moment de l'affichage de la page ralentit l'affichage global.

      Idéalement on peut aussi pré-charger les ressources probablement utilisées entre la fin du chargement de la page et avant l'interaction avec la fonctionnalité :)
      Mais outre le fait que ça devient compliqué à mettre en oeuvre (Yahoo! HP et Gmail le font cela dit), c'est surtout très difficile à exprimer, et encore plus à vérifier.

  • 12 April 2012 07:30 - Laurent Denis (1) Reply

    Bp reformulée suite aux commentaires. Pour éviter une zone de flou dans la formulation, est-ce que {Les scripts sont chargés immédiatement avant leur utilisation.} irait dans le bon sens ?

    • 12 April 2012 08:02 - Jean-Pierre Vincent Reply

      c'est le bon sens, mais je ne sais pas comment exprimer l'idée de "au dernier moment si possible"

Afficher les archives