Google ha anunciado una nueva forma de ejecutar JavaScript que mejora la capacidad de respuesta de las páginas web, ayudando a los editores que lo utilizan a superar a sus competidores en una nueva métrica central de vitalidad web.
Este anuncio ofrece un adelanto de cómo mejorar el rendimiento de la página web.
Si este experimento funciona, podría ser algo que los editores de todos los CMS y plataformas querrán utilizar para obtener una ventaja sobre sus competidores.
El problema que soluciona Google
La reacción al siguiente recubrimiento (INP) es una medida aproximada del retraso de la primera inserción (FID).
Está previsto que INP se lance como biométrico web básico en marzo de 2024.
Para obtener un buen resultado en la web central vital de INP que se lanzará próximamente, la página web debe responder a todas las interacciones posibles del usuario.
Una de las cosas que causa malos resultados de INP es que algunos JavaScript tardan mucho en ejecutarse.
Cuando estos scripts tardan mucho en ejecutarse, se denominan «tareas largas».
El problema con las misiones largas es que es como un conductor lento en una carretera que se extiende por el carril rápido, ralentizando el tráfico.
Lo que está sucediendo actualmente es que los scripts que controlan la interacción del usuario están bloqueados debido a la larga tarea, lo que hace que la página web deje de responder.
El usuario en este escenario espera y espera a que la página haga algo después de hacer clic en el botón.
Lo que suele ocurrir en muchas páginas web hoy en día es que la interacción del usuario tiene que esperar hasta que una tarea larga haya terminado de ejecutarse.
La siguiente imagen muestra cómo una tarea de interacción prolongada con el usuario impide que la tarea se ejecute.
Script de interacción del usuario de bloques de tareas largos
Lo que Google propone es una solución a este problema que hace que la larga tarea actúe como un coche lento que se detiene a un lado de la carretera para dejar pasar al camión de bomberos.
Las estrategias existentes no funcionan
Ya existen soluciones de marcado que ayudan a mejorar los resultados de la interacción del usuario.
Pero en realidad no funciona bien porque está diseñado para resolver otros problemas, no el problema de interacción del usuario.
La explicación de Google dice que las estrategias actuales pausan la tarea larga pero la envían al final de la cola para todos los demás scripts, muchos de los cuales pueden no ser tan importantes como la tarea larga.
En este escenario típico, la larga tarea que tiene que terminar tiene que esperar a que finalicen los guiones menos importantes porque ahora están al final de la línea.
Las soluciones existentes para la programación pueden crear una situación peor en lugar de ayudar.
La solución para tareas largas es Scheduler.yield
Resolver el problema de las tareas largas es el enfoque que defiende Google programación rendimiento.
Lo que hace Scheduler.yield es pausar la tarea larga para realizar la tarea de interacción del usuario, que puede comenzar a ejecutarse.
Una vez que finaliza el script de interacción del usuario, la tarea larga puede pasar al principio de la cola y comenzar a ejecutarse nuevamente.
Aquí hay una ilustración publicada por Google que muestra cómo una tarea larga se puede dividir en tareas más pequeñas para permitir que se ejecuten scripts que son importantes para la interacción del usuario.
Ilustración de cómo funciona la programación de pagos
Pruebas principales para Scheduler.Yield
La capacidad de ejecutar Scheduler.yield ha estado disponible desde Chrome 115, que se lanzó el 13 de julio.
Google está pidiendo voluntarios para probar la nueva función en un «experimento original» con el fin de recopilar comentarios para comprender cómo funciona en el mundo real antes de hacerla oficial.
Una experiencia original es una oportunidad de participar en la prueba de una nueva característica (Información sobre los ensayos originales aquí.).
Anuncio de Google explicado:
En un esfuerzo continuo por introducir nuevas API que ayuden a los desarrolladores web a hacer que sus sitios web sean lo más rápidos posible, el equipo de Chrome está ejecutando actualmente una versión beta nativa de Scheduler.yield a partir de la versión 115 de Chrome.
«scheduler.yield es una nueva incorporación propuesta a la API de programación que proporciona una manera mejor y más fácil de devolver el control al hilo principal en comparación con los métodos tradicionalmente confiables».
Un posible problema al ejecutar Scheduler.yield en un sitio activo es que un a retirarse Será necesario codificarlo para navegadores distintos de Chrome 115 para que el sitio web funcione normalmente para los visitantes del sitio que no utilizan Chrome 115 y que no admiten la nueva función.
También hay una manera de ejecutarlo localmente para realizar pruebas:
Si desea probar la programación .yield localmente, escriba e ingrese chrome://flags en la barra de direcciones de Chrome y seleccione Habilitar en el menú desplegable en la sección Características de la plataforma web experimental.
Esto hará que Scheduler.yield (y cualquier otra función experimental) esté disponible solo en su instancia de Chrome.
Una oportunidad para adelantarse a los competidores
Esta nueva característica se encuentra actualmente en modo de prueba.
Pero dado que el INP se convertirá en un biométrico web oficial en marzo de 2024, podría valer la pena estar atento y adoptar esta nueva función de Chrome más temprano que tarde una vez que salga de la versión beta.
Adoptarlo ahora podría ser una buena manera de adelantarse a la competencia, siempre y cuando haya una alternativa disponible para los navegadores que aún no hayan adoptado la nueva característica.
Lea el anuncio oficial:
presentación programación rendimiento prueba original
https://developer.chrome.com/blog/introduciendo-scheduler-yield-origin-trial/
Suscríbase a la prueba de origen de Scheduler.yield: Se puede hacer aquí.
Lea una explicación sobre cómo optimizar tareas largas:
Visite la página explicativa de GitHub para la API Scholar.yield:
Imagen destacada a través de Shutterstock/Catalyst Labs