Muy bien, así que comencemos nuestra charla con una afirmación muy simple que es, ¿qué es exactamente una animation? La oración realmente lo responde todo. Todo lo que haces en una aplicación como usuario es básicamente una animation.
Ahora, es posible que estés pensando, ¿no son un botón flotante o propiedades como transform, etc., o un carrusel que aparece, todas estas cosas son animations y no otras cosas? Básicamente, lo que entiende el navegador es todo lo que haces como usuario, ya sea desplazarte, hacer clic en un botón o pasar el cursor sobre un botón, incluso si no muestra ninguna animation, todo es en realidad una animation para el navegador, ¿verdad?
Y si quieres visualizarlo en tu mente, es básicamente como un libro de imágenes que también mantiene el navegador. Cada vez que te desplazas o interactúas con tu sitio web, el navegador crea un conjunto de fotogramas para que puedas analizar lo que está sucediendo y los ejecuta todos juntos como un libro de imágenes, para que tengas una idea de que las cosas realmente se están moviendo.
Ahora, donde realmente radica el problema es cuando los fotogramas que tiene el navegador, si este ciclo de fotogramas se desordena en algún momento, ahí es donde ocurren los problemas o cuando el rendimiento de las animations disminuye. Ahora, si intentas entender qué es realmente una caída de fotogramas o por qué los fotogramas realmente caen cuando estamos animando.
Básicamente, se debe a que cada vez que tu navegador tiene una ventana de 16,7 milisegundos, cómo se calcula esa matemática es básicamente lo que ves en la pantalla aquí. Ahora, si quieres lograr 60 fotogramas por segundo y tienes mil milisegundos, si los divides, obtendrás aproximadamente 60, aproximadamente 16,7 milisegundos. Entonces, tu navegador realmente tiene 16,7 milisegundos para generar cada fotograma.
Ahora, lo que realmente necesita hacer durante este conjunto particular de tiempo. Bien. Tomemos un ejemplo. He escrito estas dos o tres líneas de código JavaScript aquí, que en realidad está creando, básicamente agregando una clase, que es mi caja especial a mi caja. Ahora, veamos cómo el navegador realmente recorre y analiza todo tu código. Primero, descubre, oh, ahora algo ha cambiado. Se encontró con algo de JavaScript y dice, oh, necesito generar otro fotograma. Y ahora comienza el tiempo de 16 milisegundos para el navegador.
Lo siguiente que analiza el navegador es, oh, OK, hay algún cambio de estilo que también ha estado en este archivo JavaScript, que estoy agregando algunas clases y también necesito averiguar qué hacen estas clases, qué tipo de recálculo de estilo debo hacer. Bien. Eso sería un segundo paso. En el tercer paso, el navegador descubre que, OK, he calculado los estilos, he ejecutado el JavaScript. Ahora necesito averiguar cómo renderizar todas estas cajas en la pantalla. Bien. Para esto, el navegador necesita conocer el diseño. Bien. Cuáles serán las dimensiones de cada una de las divisiones que tienes y cómo debe posicionarse en la pantalla. Bien. Esta es como esa fase de diseño donde el navegador está tratando de hacer esos cálculos.
En el cuarto paso, cuando haya terminado, intenta decidir que, OK, ahora he descubierto el diseño. Necesito pintar todo en términos de píxeles y para pintar.
Comments