Atelier Webperf - Fermé

[Proposals] Criterion N° 112 - Le serveur envoie la section head de la page dès qu'elle est disponible.

Déposer un commentaire

  • 13 April 2012 18:44 - Laurent Denis (1) Reply

    Propositions à discuter : Niveau 1 : {Le serveur envoie la section head de la page dès qu'elle est disponible.} Niveau 2 : {Le serveur envoie le bandeau d'en-tête de page dès qu'il est disponible.} Niveau 3 : {Le serveur envoie chaque fragment de contenu dès qu'il est disponible.} ?

    • 13 April 2012 18:47 - Laurent Denis (2) Reply

      Question à 10 000 F : comment évalue-t-on ça lors d'un check "externe" ? Est-ce vérifiable ? ;-)

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

        Oui, il y aura des entêtes HTTP spécifiques.

      • 09 May 2012 09:57 - Jean-Pierre Vincent (1) Reply

        En admettant que tu aies la main sur le flux HTTP :
        - tu peux vérifier que la réponse t'es envoyée en plusieurs morceaux lorsque le temps de réponse est "long" ( > 1s ? )
        - logiquement le serveur ne renvoie pas Content-Length, mais ça n'est pas un critère absolu
        - tu peux vérifier que la balise HEAD est envoyée en "peu de temps" (< 200ms ?)
        - pour le reste, c'est très délicat, sauf si le markup de la page contient des informations de type ARIA-landmark (role=banner) ou HTML5 (balise HEADER).
        Bon courage les gars, j'aime beaucoup ce que vous faîtes.

        • 29 June 2012 13:35 - Laurent Denis (1) Reply

          Compte-tenu des difficultés de mise en oeuvre, la BP est finalement limitée à {Le serveur envoie la section head de la page dès qu'elle est disponible}, au niveau 3, sous réserve d'adoption finale.

          • 29 June 2012 13:38 - Fabrice Bonny (1) Reply

            J'ai cherché des solutions pour Django ou SPIP, par exemple, et ça ne semble pas simple du tout à mettre en œuvre.

            • 29 June 2012 13:49 - Nicolas Hoizey (1) Reply

              C'est sans doute bien plus facile sur un code spécifique, un CMS t'impose son moteur de template, tu ne peux pas forcément t'immiscer dans le flux…

              • 10 September 2012 13:12 - Laurent Denis (1) Reply

                Est-ce qu'on valide au niveau 3 {Le serveur envoie la section head de la page dès qu'elle est disponible} ? Ou est-ce que la mise en oeuvre est trop difficile à systématiser ?

                • 12 September 2012 07:32 - Fabrice Bonny (2) Reply

                  L'idée d'une BP qui exclut systématiquement et consciemment les CMS les plus courants ne me tente pas trop, pour être franc.

                  • 13 September 2012 11:33 - Nicolas Hoizey Reply

                    Même en niveau 3 ? C'est quand même intéressant de pouvoir faire ça…

                  • 08 October 2012 14:23 - Jean-Pierre Vincent Reply

                    Si les technos majeures ne suivent pas, tant pis pour elles, le but c'est aussi de faire bouger tout le monde non ?<div><br></div><div>Cela dit, les gros sites avec du CDN ou du cache serveur devant vont avoir à peu près le même problème : selon la manière dont on vérifie l'envoi du &lt;head&gt;, on peut avoir des faux positifs</div>

  • 11 April 2012 13:17 - Jean-Pierre Vincent (1) Reply

    on pourrait peut être revoir le titre ?
    "Le serveur envoie les blocs de HTML dès qu'il sont calculés"

    • 11 April 2012 13:21 - Nicolas Hoizey (1) Reply

      Ne peut-on pas parler de «fragments» plutôt que de «blocs», qui ont une signification particulière ?

      • 11 April 2012 13:54 - Laurent Denis (1) Reply

        Propositions : {Le serveur envoie le contenu au fur et à mesure de sa génération} ? {Le serveur envoie les fragments de contenu dès qu'ils sont disponibles} ?

        • 11 April 2012 14:03 - Nicolas Hoizey (1) Reply

          Le terme «génération» ne me semble pas approprié, je préfère la seconde formulation.

          Par contre, il doit falloir sélectionner intelligemment les fragments en question. L'intérêt de les envoyer au plus vite étant qu'ils soient rendus, il faut des fragments «complets»…

          • 11 April 2012 14:39 - Jean-Pierre Vincent (1) Reply

            Le "fragment" vital, c'est le <head>, qui permet de lancer les téléchargements de CSS (voire de JS) au plus tôt, et après ça ne coûte généralement rien d'envoyer ASAP le haut du site qui est le plus souvent statique (barre de navigation, logo, pub ...). Passé ça, idéalement il faudrait rendre chaque bout de code HTML qui correspond à une zone fonctionnelle dès que le serveur a fini de la calculer

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

              J'ai reformulé le libellé à partir de ce qui a été dit à ce stade. Question : est-ce que deux, voire trois critères de niveaux différents seraient pertinents ? Un pour le head au niveau 1, un allant au-delà pour le niveau 2 avec le banner ? Un au niveau 3 pour tous les autres blocs éventuellement concernés ?

              • 12 April 2012 09:16 - Nicolas Hoizey (1) Reply

                Mettre cette BP au niveau 1 me paraît un peu violent, ce n'est pas toujours évident d'avoir la capacité à le faire. Donc plutôt head en niveau 2, et reste (dont surtout banner) en niveau 3

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

                  ah, j'aurais dit niveau 1 pour le head moi. Dès qu'un bout de code est long à calculer côté serveur ( > 200ms), c'est tout le téléchargement de la page qui commence plus tard, alors qu'avec la technique du flush, tu peux cacher la misère.
                  Effectivement avec les frameworks d'aujourd'hui ça n'est pas toujours facile à implémenter côté serveur, mais le niveau de priorité est d'abord là pour l'impact final non ?
                  Sinon pour répondre à Laurent, le système avec 3 niveaux de prio peut être pas mal si vous estimez que ça n'alourdit pas trop la checklist de manière générale