μΉ μ λλ©μ΄μ μ μ²λ¦¬νλ λ° μ¬μ©λλ JavaScriptμ λ©μλλ‘, λΈλΌμ°μ μ μ λλ©μ΄μ μνμ μμ²νκ³ λ€μ 리νμΈνΈκ° λ°μνκΈ° μ§μ μ μ§μ λ μ½λ°± ν¨μλ₯Ό νΈμΆνμ¬ μ΄λ₯Ό ν΅ν΄ λΈλΌμ°μ κ° μ΅μ νλ μ λλ©μ΄μ μ μ€νν μ μλλ‘ ν΄μ€λ€.
μμ μλ νμ΄λ¨Έν¨μμΈ setInterval(), setTimeout() μ μ¬μ©νμ¬ λ¬΄ν λ°λ³΅μΌλ‘ μ λλ©μ΄μ
μ λ§λ€μλ€λ©΄,
requestAnimationFrame() λ νμ΄λ¨Έν¨μκ° κ°μ§ λ¨μ λ€μ 보μν΄μ λμ¨ ν¨μλΌκ³ λ³Ό μ μλ€.
νλ μμ 무쑰건 λ§μΆ°μ€λ€λ 보μ₯μ΄ μκΈ°λλ¬Έμ λΈλΌμ°μ κ° μ§μ°λ μ νλ μμ΄ μ΄κΈλ μ λλ©μ΄μ μ΄ λ²λ² μ΄κ² λλ λ¬Έμ κ° μλ€κ³ νλ€.π€
μ΄λ₯Ό λμ νμ¬ νλ μ μμμ λ§μΆ° μ€νλ μ μκ² λ³΄μ₯λλ requestAnimationFrame ν¨μκ° λμ¨ κ²μ΄λ€.π
λΈλΌμ°μ κ° λ€μ 리νμΈνΈλ₯Ό μ§ννκΈ° μ μ νΈμΆλλ―λ‘, μ λλ©μ΄μ μ λΈλΌμ°μ μ 리νμΈνΈ μ£ΌκΈ°μ λ§μΆ° μ΅μ νλ λ°©μμΌλ‘ μ²λ¦¬ν μ μλ€. μ΄λ₯Ό ν΅ν΄ λΆλλ¬μ΄ μ λλ©μ΄μ μ μ 곡ν μ μκ³ , λΆνμν 리μμ€ μλͺ¨λ₯Ό λ°©μ§ν μ μλ€.
μ λλ©μ΄μ μ΄ νλ©΄μ νμλλ λμμλ§ νΈμΆλκΈ°λλ¬Έμ νλ©΄μ 보μ΄μ§ μλ κ²½μ°μλ μμμ μλΉνμ§ μμΌλ―λ‘, μ λ ₯ μλΉλ₯Ό μ€μ΄κ³ λ°°ν°λ¦¬ μλͺ μ μ°μ₯ν μ μλ€.
μ체μ μΌλ‘ νΈμΆ μ£ΌκΈ°λ₯Ό κ΄λ¦¬νλ―λ‘, μ λλ©μ΄μ μ νμ΄λ°μ λΈλΌμ°μ κ° μ μ΄νκ² λλ€. μ΄λ μΌλ°μ μΌλ‘ κ³ ν΄μλ λμ€νλ μ΄λ λ€μν μ₯μΉμμ μΌκ΄λ μ λλ©μ΄μ ν¨κ³Όλ₯Ό μ»μ μ μλλ‘ λλλ€.
μμ½: μΉ μ λλ©μ΄μ μ μ΅μ ννκ³ λΈλΌμ°μ μ 리νμΈνΈ μ£ΌκΈ°μ λ§μΆ° μ²λ¦¬νμ¬ μ±λ₯μ ν₯μμν¨λ€.
const animation = () => {
// μ€ν¬λ¦½νΈ
requestAnimationFrame(animation)
// ν¨μ λ΄λΆμμ λ€μ νΈμΆνμ¬ λ°λ³΅
}
requestAnimationFrame(animation);
/* μ·¨μ ν¨μ */
cancelAnimationFrame(animation);
μ°Έκ³ π: 1λΆμ½λ© & Inpaλ