[JS] Timing

Chenยท2024๋…„ 6์›” 12์ผ
0

Javascript

๋ชฉ๋ก ๋ณด๊ธฐ
15/22
post-thumbnail

setTimeout

~์ดˆ ํ›„์— ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”! ์‹œ๊ฐ„ ์˜ˆ์•ฝ!!

๋ฆฌํ„ด๊ฐ’์€ number (ํšŸ์ˆ˜)

ํ™œ์šฉ : ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋งŒํผ ์‹œ๊ฐ„์„ ์ง€์—ฐ์‹œํ‚ฌ ๋•Œ

setTimout(funcion() {}, 1000)

clearTimeout ์œผ๋กœ ํƒ€์ด๋จธ ์ทจ์†Œ์‹œํ‚ค๊ธฐ

<button class="btn">ํด๋ฆญํ•˜๋ฉด 3์ดˆ๊ฐ€ ์ง€๋‚˜๋„ alert ์•ˆ๋œธ</button>
	<script>
		const btnElem = document.querySelector('.btn');

		function sayHi() {
			alert('์•ˆ๋…•!');
		}

		const timerId = setTimeout(sayHi, 3000);
		btnElem.addEventListener('click', function () {
			clearTimeout(timerId);
		});
	</script>
timeId = setTimeout(sample, 3000);

clearTimeout(timeId);

timeId = setTimeout(sample, 3000);

btn.addEventListener('click', function () {
	clearTimeout(timeId);
});

โค๏ธ ์ •๋ฆฌ


setInterval

clearInterval ๋กœ ์ธํ„ฐ๋ฒŒ ๋ฉˆ์ถ”๊ธฐ

timeId = setInterval(sample, 1000 / 60);

btn.addEventListener('click', function () {
	clearInterval(timeId);
});

setInterval์˜ ๋‹จ์ 

๋ฌด๋Œ€๋ฝ€๋ผ์„œ ์„ฑ๋Šฅ์ด ์•ˆ ์ข‹์œผ๋ฉด ํ”„๋ ˆ์ž„ ๋กœ์Šค, ๋ฐฐํ„ฐ๋ฆฌ๋„ ๋นจ๋ฆฌ ๋‹ณ๊ณ .. ๋“ฑ

๊ทธ ๋‹จ์ ์„ ๊ฐœ์„ ํ•œ => requestAnimationFrame

  • ๊ทธ๋ž˜์„œ canvas์—์„œ๋Š” requestAnimationFrame์„ ๋” ๋งŽ์ด ์”€
  • ๋ฌผ๋ก , setInterval๋„ ์“ฐ๊ธด ์”€. ํƒ€์ž„ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์  ์žˆ์Œ

requestAnimationFrame (์žฌ๊ท€)

์ดˆ๋‹น 60๋ฒˆ์ด ๋ชฉํ‘œ (60๋ฒˆ์ด ๋ณด์žฅ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜)

function sample() {
	console.log('sample');

	timeId = requestAnimationFrame(sample);
}

sample();

btn.addEventListener('click', function () {
	cancelAnimationFrame(timeId);
});

์กฐ๊ฑด์„ ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด

let timeId;
let n = 0;
const btn = document.querySelector('.btn');

function sample() {
	n++;
	console.log(n);
	if (n > 200) {
		return;
	}
	timeId = requestAnimationFrame(sample);
}

sample();

btn.addEventListener('click', function () {
	cancelAnimationFrame(timeId);
});

profile
ํ˜„์‹ค์ ์ธ ๋ชฝ์ƒ๊ฐ€

0๊ฐœ์˜ ๋Œ“๊ธ€