Est-il toujours recommandé de s'aligner au-dessus du pli CSS avec l'adoption de http / 2?

8

Depuis un certain temps, je suis en train de suivre la recommandation de Google ici ( https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery ) pour aligner les éléments critiques au-dessus du CSS pour des temps de chargement plus rapides. Je me demandais, est-ce que cela va encore être nécessaire avec l'adoption de http2 de plus en plus? Mon raisonnement est la façon dont je comprends que http2 autorise les requêtes parallèles sur une connexion afin que le CSS puisse commencer à télécharger immédiatement? Quelqu'un, s'il vous plaît, corrigez-moi si ma compréhension du fonctionnement de http2 est erronée ...

jetyet47
la source

Réponses:

2

Vous avez raison sur la nécessité de ne plus intégrer le CSS avec l'adoption de HTTP / 2. En fait, les meilleures pratiques HTTP / 2 suggèrent le contraire de l'inlining. La question qui se pose pour vous et pour tout lecteur de cet article est: quel est le bon moment pour effectuer ce changement?

Un changement d'inlining en non-inlining (et il en serait de même pour les images-objets) ne devrait vraiment être effectué qu'après avoir soigneusement évalué les capacités du navigateur / client de vos utilisateurs pour accepter HTTP / 2. L'utilisation de l'analytique pour éclairer votre décision élimine les conjectures dans ce cas.

Au fil du temps, je ne serais pas surpris de voir des modifications apportées à apache, mod_pagespeed, nginx, vanish et autres pour s'aligner automatiquement uniquement pour les clients / navigateurs HTTP / 1. Alors, restez à l'écoute des mises à jour de version pour les principaux serveurs Web pour aider à automatiser ce changement.

Pour plus d'informations sur HTTP / 2, je recommande fortement le podcast changelog.com sur HTTP / 2 avec Ilya Grigorieva, l'architecte principal des efforts http / 2 de Google: écoutez l'interview ici

John Mark Mitchell
la source
1

L'idée derrière l'incrustation au-dessus de la ligne de flottaison est toujours bonne, car les demandes de CSS prennent toujours le même temps et les pages sont toujours bloquées pendant le téléchargement du fichier CSS. HTTP / 2 n'accélère pas les téléchargements. Il permet un téléchargement simultané. De cette façon, les images et autres fichiers ne sont pas attachés en attendant leur place en ligne mais, encore une fois, il faut autant de temps pour les télécharger et les exécuter ou les installer qu'avant HTTP / 2.

Rob
la source
Supposons que vous ayez une page avec un fichier CSS et une image. L'image est une taille de fichier plus grande que le CSS. S'ils sont téléchargés simultanément, cela n'aurait-il pas d'importance si le CSS était en ligne ou non car le temps de téléchargement prendra de toute façon la plus longue ressource, dans ce cas, l'image?
jetyet47
@ jetyet47 Mon point était que l'OP pensait que HTTP / 2 accélérait le téléchargement. Ce ne est pas. Notez que CSS bloque d'abord la peinture jusqu'à ce qu'il soit téléchargé et que le modèle d'objet CSS soit créé.
Rob