⚡ Critical CSS desde Cero usando PLAYWRIGHT 🎭 y NODE.JS ¡MEJORA el rendimiento de tu WEB fácilmente!

Channel:
Subscribers:
266,000
Published on ● Video Link: https://www.youtube.com/watch?v=BDomHRQh7zU



Duration: 1:08:27
5,846 views
233


Playwright es la alternativa a Puppeteer y te permite automatizar el uso de navegadores Chromium, Webkit o Firefox. Usando Node.js y Playwright, puedes conseguir el Critical CSS de una página web muy fácilmente.

En este vídeo creamos un script que extrae y minifica el Critical CSS de una web.

▶ No te pierdas más directos en: https://www.twitch.tv/midudev

El Critical Path de una web, o en castellano, la ruta crítica es la secuencia mínima que una página tiene que seguir para poder hacer su primer pintado. ¿Y por qué es importante? Porque según la longitud de ese camino crítico, el usuario verá más tarde la página web.

Por eso, a la hora de hacer optimizaciones a la performance de nuestro site, uno de los objetivos principales será minimizar al máximo el número de recursos o solicitudes que tenemos que hacer para poder realizar el primer renderizado de nuestra página.

No en vano Lighthouse, la referencia de Google para tomar métricas de performance sobre la experiencia del usuario, tiene muy presente esto y una de sus comprobaciones es, precisamente, averiguar los pasos necesarios para renderizar la página del usuario. En el informe genera un diagrama como este:

Initial navigation
|---es/ (fotocasa.es)
|---css/styles.css (cdn.fotocasa.es) - 1147.25ms, 70.77KB
|---css/more-styles.css (cdn.fotocasa.es) - 1155.12ms, 71.20KB
|---2.2.0/jquery.min.js (ajax.googleapis.com) - 2699.55ms, 99.92KB
|---images/logo.jpg (cdn.fotocasa.es) - 3200.39ms, 73.59KB

¿Por qué el CSS bloquea el renderizado de nuestra página?
Como véis, el CSS es un recurso que bloquea el renderizado de nuestra página. Del propio HTML lo podríamos esperar ya que, sin él, no podríamos tener el DOM montado pero… ¿del CSS?

La explicación es que una página no puede ser renderizada si no ha construido el árbol de renderizado. Y el árbol de renderizado está compuesto por HTML y el CSSOM (una especie de DOM para CSS). Imaginad que no lo hiciese. No sólo veríamos siempre nuestras páginas sin estilos para, de repente, aparecer bien pintada, si no que podría incurrir en problemas en nuestro Javascript ya que los cálculos de dónde se encuentran nuestros elementos y cuanto ocupan podrían no ser correctos.

Por ello, el navegador por defecto descarga los recursos CSS de forma síncrona y bloqueando el renderizado de nuestras páginas pero, nosotros, podríamos forzar a que se cargase de forma asíncrona. Al hacerlo, incurriríamos en el problema de mostrar nuestra página sin estilar y, de repente, mostrarla con los estilos y os puedo asegurar que el efecto es bastante incómodo para el usuario.

Una de las formas de solucionar esto meter los estílos críticos de tu página en línea, dentro de unas etiquetas style. Los estilos críticos serían los que el usuario ve nada más entrar en tu sitio y deberían ser mucho menos que los que realmente estás cargando para poder mostrarle la página al usuario. Chrome tiene una herramienta llamada Code Coverage que puede ayudarte a visualizar cuanto CSS estás cargando respecto al que realmente necesita el usuario para renderizar la parte crítica.

El problema de extraer el CSS crítico de nuestra página son varios:

1. Es complicado hacer esto manualmente…
2. y es más complicado hacerlo para las diferentes rutas de nuestra página que necesitan un CSS distinto.

Pero con lo que enseñamos en este vídeo vas a conseguir hacerlo.




Other Videos By midulive


2021-08-25👹 Resolviendo Katas de JavaScript en CodeSignal: add, centuryFromYear y checkPalindrome
2021-08-22¿Es normal hacer pruebas técnicas para ser desarrollador que tomen una semana? #shorts
2021-08-20🧑‍⚖️ Tu WEB a JUICIO - Revisando webs y portfolios de la comunidad: ¡STEVE JOBS se cuela! 🍎
2021-08-18¿Está bien usar CSS frameworks si no se me da bien el CSS? #shorts
2021-08-17Refactorizando un useEffect de React muy anidado. ¡Sube de nivel! 🔝
2021-08-16¡¡La programación NO es memorización!! #shorts
2021-08-15Tendencias en el desarrollo en 2021. ¿Con qué lenguaje se gana más dinero? 💸
2021-08-14🧑‍⚖️ Tu WEB a JUICIO - Reviso webs, portfolios y apps de la comunidad | ¡NO TE TAPES LOS OJOS! 😱
2021-08-11🤔 ¿Cómo usar Visual Studio Code en una web? ¡Lo añadimos a codi.link desde cero!
2021-08-10CODI.LINK: Construyendo un PLAYGROUND de código desde CERO 🔥
2021-08-08⚡ Critical CSS desde Cero usando PLAYWRIGHT 🎭 y NODE.JS ¡MEJORA el rendimiento de tu WEB fácilmente!
2021-08-07🧑‍⚖️ Tu WEB a JUICIO - Reviso webs, portfolios y apps de la comunidad - ¡Y OJO con los CONSOLE.LOG!
2021-08-05¿Cómo IMPORTAR dinámicamente componentes y rutas de React? ¡Usa React.lazy! #shorts
2021-08-04¿Cómo puedo usar async/await dentro de un useEffect en React? ⚛️ #shorts
2021-07-29¿Seguro que conoces TODAS las formas de poner comentarios en JavaScript? 😱
2021-07-27¿Debería aprender cómo usar las clases en React? #shorts
2021-07-27😱 ¡Reaccionando a webs, apps y portfolios de la comunidad! - ¡Tu web a juicio!
2021-07-23✅ Resolviendo ejercicio de algoritmia en JavaScript - Ejercicio de loteria solución con while
2021-07-20Server Side Rendering Vs. Client Side Rendering. ¡PROBLEMAS de SEO! ¿Prerendering es la SOLUCIÓN?
2021-07-15Resolviendo una prueba técnica - Aprendiendo a usar startsWith para filtrar strings
2021-07-09⚛️ ¿Qué diferencia hay entre importar React o importar con asterisco? ¡Más de lo que crees!



Tags:
midudev
midudev twitch
playwright
critical css
playwright tutorial
playwright automation
playwright tutorial javascript
playwright tutorial critical css
playwright puppeteer