Creo que el nombre original transmite muy bien el concepto, pero no tiene un acrónimo pegajoso. Así que el gráfico tomado de los Google Docs originales sobre la métrica en el estudio de caso para la métrica, muestra una serie de eventos que el navegador tomaría para poder calcular el time to interactive. Y también podemos usar el gráfico oficial tomado del artículo de web.dev sobre first input delay para ver cómo están conectados el time to interactive y el first input delay.
Entonces, el time to interactive mide hacia atrás el tiempo total que el navegador tomó desde el inicio de la respuesta hasta cuando el navegador tiene una ventana de cinco segundos de ventana tranquila de cinco segundos. Y para evaluar y medir cómo el navegador es capaz de responder de manera confiable a las interacciones del usuario. First input delay mide la primera interacción y evalúa cualquier retraso en el manejo de la entrada. La métrica de first input delay fue un buen comienzo. En un intento de evaluar la interrupción y el jank al servir la primera interacción, te da un número en milisegundos sobre cuánto tiempo se retrasó la respuesta de esa interacción con la métrica de first input delay vino con algunos ojos y la métrica también vino con algunas recomendaciones sobre cómo evitar interacciones lentas. Con eso, también obtuvimos total blocking time como una métrica de laboratorio para ayudarnos a medir el impacto total en tareas largas.
Así que esta métrica no está necesariamente conectada a las interacciones del usuario, sino que mide cuánto trabajo se está realizando en el hilo principal, lo que puede impactar las interacciones del usuario y las actualizaciones visuales que necesitan ocurrir durante ese tiempo. Esta métrica, aunque utilizada por herramientas de laboratorio como Lighthouse para medir el impacto en tareas largas durante el tiempo de carga no es necesariamente una métrica de tiempo de carga, sino que mide una medición de tareas largas bloqueando el hilo principal a lo largo del tiempo. Desde la creación del modelo rail, intentamos entender el impacto de un hilo principal ocupado en la experiencia de nuestros usuarios con acrónimos elegantes y modelos mentales para ayudarnos a dividir el trabajo y comprender mejor el impacto de las tareas largas al intentar mantener una experiencia de usuario receptiva y agradable como resultado clave. Hablando de tareas largas, la API de long task es otro hito importante. Si total blocking time es el tiempo total de bloqueo durante un período de tiempo, la API de long task nos proporciona acceso granular a todas las tareas largas que ocurrieron durante dicho período de tiempo, dándote alguna forma de enumeración y modelo de atribución básico sobre esas entradas. Aunque fue un paso en la dirección correcta, no resolvió nuestros problemas. El modelo de atribución básico nos da más granularidad y algo de información sobre cada tarea larga, pero no nos da una visión adecuada sobre qué script o función podría haber sido atribuida, dándote no mucho más que una marca de tiempo y una duración total de bloqueo. Esta cita en realidad proviene del artículo sobre long animation frames sobre las deficiencias de la API de long task, que es otro punto a otro punto es que si solo consideras las tareas largas como una fuente de problemas de interactividad, estás eliminando toda una clase de problemas de rendimiento que tiene que ver con el estilo y el diseño, que también ocuparán el hilo principal impidiendo que el navegador responda a las interacciones y ralentizando la producción de nuevos frames.
Y así, con ese conocimiento, el equipo de Chrome comenzó a investigar cómo podrían crear una mejor métrica de capacidad de respuesta centrada en el usuario, una que pudiera observar no solo el tiempo de carga, sino también el tiempo posterior a la carga, como parte de la experiencia del usuario. Y también abarca todas las partes que podrían estar causando interacciones lentas. Esta imagen está tomada del artículo hacia una mejor métricas de capacidad de respuesta que precede al anuncio de INP. Y ya puedes ver mucha semejanza en cómo INP como métrica funciona e identificar algunas de sus partes. Puedes ver la sección de retraso de entrada, la sección de tiempo de procesamiento, y el siguiente frame siendo formado como un recuento completo de la duración de la interacción. Esto también se representa en DevTools, al menos hoy en día. En la pista de interacciones en el panel de rendimiento, ves el retraso de entrada y el retraso de presentación como bigotes en cada lado del evento de entrada. Y el tiempo de procesamiento como la barra sólida, representando la totalidad de la duración de la interacción. Así que todas esas tres partes cuentan para la interacción. Y con todos los marcos de llamada dentro de la pila siendo mostrados debajo en la pista del hilo principal, lo que ahora nos lleva de vuelta a INP y long animation frames. Así que comencemos con INP. INP, como un Core Web Vitals, intenta evaluar la capacidad de respuesta general de la página dándote una puntuación basada en la interacción más larga observada. INP, similar a CLS, es una métrica a nivel de sesión.
Comments