¿Todavía se recomienda incluir CSS en la mitad superior de la página con la adopción de http / 2?

8

Por un tiempo, he estado siguiendo las recomendaciones de Google aquí ( https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery ) para alinear el CSS crítico por encima del pliegue para tiempos de carga más rápidos. Me preguntaba, ¿seguirá siendo necesario con la adopción de http2 cada vez más alto? Mi razonamiento es la forma en que entiendo que http2 permite solicitudes paralelas en una conexión para que el CSS pueda comenzar a descargarse de inmediato. Alguien corríjame si mi comprensión de cómo funciona http2 está mal, está mal ...

jetyet47
fuente

Respuestas:

2

Está en lo correcto acerca de la necesidad de dejar de alinear CSS con la adopción de HTTP / 2. De hecho, las mejores prácticas de HTTP / 2 sugieren lo contrario de la inserción. La pregunta que le queda a usted y a cualquier lector de esta publicación es, ¿cuándo es el momento adecuado para hacer este cambio?

Un cambio de en línea a ya no en línea (y lo mismo sería cierto para los sprites de imagen) en realidad solo debe hacerse después de evaluar cuidadosamente las capacidades del navegador / cliente de sus usuarios para aceptar HTTP / 2. El uso de análisis para informar su decisión elimina las conjeturas si esto.

Con el tiempo, no me sorprendería ver modificaciones en apache, mod_pagespeed, nginx, vanish y otras para auto-inline solo para clientes / navegadores HTTP / 1. Por lo tanto, esté atento a las actualizaciones de versión de los principales servidores web para ayudar a automatizar este cambio.

Para obtener más información sobre HTTP / 2, recomiendo encarecidamente el podcast changelog.com sobre HTTP / 2 con Ilya Grigorieva, el arquitecto principal detrás de los esfuerzos http / 2 de Google: escuche la entrevista aquí

John Mark Mitchell
fuente
1

La idea detrás de la inclusión en línea para la mitad superior de la página sigue siendo buena porque las solicitudes de CSS aún requieren la misma cantidad de tiempo y las páginas siguen bloqueadas mientras se descarga el archivo CSS. HTTP / 2 no acelera las descargas. Permite la descarga concurrente. De esta forma, las imágenes y otros archivos no están atados esperando su lugar en la fila, pero, nuevamente, lleva tanto tiempo descargarlos, ejecutarlos o instalarlos como antes de HTTP / 2.

Robar
fuente
Digamos que tiene una página con un archivo CSS y una imagen. La imagen tiene un tamaño de archivo mayor que el CSS. Si se descargan simultáneamente, ¿no importaría si el CSS estaba en línea o no porque el tiempo de descarga tomará el mayor tiempo posible, en este caso, la imagen?
jetyet47
@ jetyet47 Mi punto fue que el OP pensó que HTTP / 2 acelera la descarga. No es asi. Tenga en cuenta que CSS bloquea la primera pintura hasta que se descarga y se crea el modelo de objeto CSS.
Rob