Esto se mide en Pagespeed Insights o React, lo siento, Chrome User Experience Report porque requiere que un usuario real interactúe con él. Sin embargo, puedes medir algo como TBT o Tiempo Total de Blogging para medir este FED o IMB. Eso es una buena indicación también de que tienes un problema o no usando pruebas sintéticas testing.
Entonces, ¿qué mide IMB? Esta es una tarea normal que encontrarás en cualquier pestaña de performance que es normal porque está por debajo de 50 milisegundos. Sin embargo, en la mayoría de los casos, encontrarás una tarea diferente que es una tarea de bloqueo. Es una tarea larga, más de 50 milisegundos. Se marcará así con una franja roja. Y esto se llama tarea de bloqueo o bloqueo para el hilo principal. Esto significa que cualquier entrada que ocurra durante esta tarea larga o tarea de bloqueo se retrasará hasta que el hilo principal esté inactivo para que puedan interactuar con el usuario. Y esta es exactamente la razón por la que tenemos FED o IMB en primer lugar.
Entonces, para este ejemplo, si tenemos estas tareas de bloqueo al principio, si consideramos esto como las tareas de bloqueo de la carga de la página. Así que esta es la primera vez que ocurre, la tarea de bloqueo, pero el usuario empieza a interactuar, esto es FED. Sólo está midiendo esta parte del retraso de entrada hasta que empezó el tiempo de procesamiento. Pero IMB está midiendo todo esto, retraso de entrada, tiempo de procesamiento, retraso de presentación, y así sucesivamente. Así que no es sólo para el primer retraso de entrada. Y también es para toda la interacción del usuario durante la experiencia en tu página. No sólo el primero como FED. IMB basado en investigaciones muestra que debería estar por debajo de 200 milisegundos para ser considerado como bueno, pero cualquier cosa por encima de 500 milisegundos se considera pobre o malo. necesitas interactuar inmediatamente.
Entonces, ¿cómo optimizar para IMB? Como regla general, no bloquees el hilo principal. Este es el principal problema que estamos tratando de solucionar aquí. Entonces, ¿cómo hacerlo? Desglosando tus tareas largas. Aquí tienes un rápido ejemplo de una función que está llamando a cinco funciones diferentes. Así que obviamente esta función es una tarea larga, llamando a cinco funciones diferentes debajo de ella como puedes ver ahí abajo. Entonces, ¿cómo hacerlo? ¿Cómo solucionarlo para IMB? Fácilmente, hicimos un pequeño cambio aquí. Simplemente añadimos todas las funciones en un array, las recorremos y las llamamos. Pero después de llamar a cada una de ellas, estamos haciendo una pequeña cosa aquí. Estamos llamando al yield para el hilo principal. Esto es sólo un truco, es sólo una solución alternativa para ceder al hilo principal usando setTimeout. Esto significa que cada una de estas funciones se ejecutará en una tarea diferente.
Comments