Actualmente estoy tratando de aprender cómo funciona la animación en javascript y me quedé un poco atascado. El blog que estoy leyendo es https://javascript.info/js-animation y este fragmento de código me vuelve loco.
let prev = performance.now(); let times = 0; requestAnimationFrame(function measure(time) { document.body.insertAdjacentHTML( "beforeEnd", Math.floor(time - prev) + " " ); prev = time; if (times++ < 10) requestAnimationFrame(measure); })No puedo entender de qué se trata la variable times, por qué usa time en el método Math.floor y por qué prev = time. ¡Gracias!
times Aquí, times se usa como un contador para llamar a la función requestAnimationFrame 10 veces:
if (times++ < 10) requestAnimationFrame(measure);times es inferior a 10requestAnimationFrametimes de incrementotime = prev time contiene la marca de tiempo en la llamada de función, con una precisión muy alta. Esto luego se asigna a prev , que presumiblemente se usa para mantener la marca de tiempo durante la llamada de función anterior
La razón de esto se explica en la siguiente sección.
Math.floor(time - prev) Aquí, time mantiene la hora durante la llamada de función actual con una precisión muy alta y prev la hora durante la llamada de función anterior.
Si resta prev de time , obtendrá la cantidad de tiempo transcurrido entre los dos.
La función Math.floor luego redondea esto a un número entero, después de lo cual se inserta en el cuerpo usando la función document.body.insertAdjacentHTML .