setTimeout() , setInterval() ν•¨μˆ˜

kirin.logΒ·2021λ…„ 3μ›” 17일
0
post-custom-banner

πŸŽƒ setTimeout()

  • μ‹œκ°„ 지연 ν•¨μˆ˜, 일정 μ‹œκ°„ λ’€ (μ½”λ“œ λ˜λŠ” ν•¨μˆ˜) μ‹€ν–‰
  • 일정 μ‹œκ°„ 후에 νŠΉμ • μ½”λ“œ, ν•¨μˆ˜λ₯Ό μ˜λ„μ μœΌλ‘œ μ§€μ—°ν•œ λ’€ μ‹€ν–‰ν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜
κΈ°λ³Έ 문법

setTimeout( function() {
	      // 호좜될 μ½œλ°±ν•¨μˆ˜(μ§€μ—°μ‹œκ°„ 뒀에 싀행될 μ½”λ“œλ₯Ό μ„€μ •)
           }, delay time );


setTimeout( () => {
             // 호좜될 μ½œλ°±ν•¨μˆ˜(μ§€μ—°μ‹œκ°„ 뒀에 싀행될 μ½”λ“œλ₯Ό μ„€μ •)
           }, delay time );

πŸ’‘ ν™œμš© 예제

// 3초의 μ§€μ—°μ‹œκ°„ μ„€μ • 예제

setTimeout(function() {
  	console.log('Works!');
}, 3000);



// 1초의 μ§€μ—°μ‹œκ°„ μ„€μ • 예제

setTimeout(() => {
  	loading.remove();
  	countdown.style.display = 'flex';
}, 1000);

πŸŽƒ setInterval()

  • μΌμ •μ‹œκ°„λ§ˆλ‹€ λ°˜λ³΅ν•΄μ„œ μ½”λ“œ λ˜λŠ” ν•¨μˆ˜λ₯Ό μ‹€ν–‰
  • '일정 μ‹œκ°„ κ°„κ²©μœΌλ‘œ λ°°λ„ˆκ΄‘κ³ λ₯Ό λ°”κΎΈλ©΄μ„œ 보여쀄 경우' λ“±μ—μ„œ 주둜 ν™œμš©
κΈ°λ³Έ 문법

setInterval( 호좜될 μ½œλ°±ν•¨μˆ˜, delay time );

πŸ’‘ ν™œμš© 예제

// 1초의 μ§€μ—°μ‹œκ°„ μ„€μ • ν›„ μ½”λ“œ(updateCountdown) 반볡 예제

setInterval(updateCountdown, 1000);

πŸŽƒ clearInterval()

  • 타이머 ν•¨μˆ˜(ex. setTimeout() )λ₯Ό 쀑지, μ‚­μ œν•˜λŠ” ν•¨μˆ˜
  • setTimeout() ν•¨μˆ˜λ₯Ό λ³€μˆ˜μ— 담은 값을 clearInterval()ν•¨μˆ˜μ— λ‹΄μ•„μ€€λ‹€
κΈ°λ³Έ 문법

let stopRepeat = setTimeout( () => {
               	// 호좜될 μ½œλ°±ν•¨μˆ˜(μ§€μ—°μ‹œκ°„ 뒀에 싀행될 μ½”λ“œλ₯Ό μ„€μ •)
           	}, delay time );

clearInteral(stopRepeat)

❗ νŽ˜μ΄μ§€κ°€ μ „ν™˜λ˜μ§€ μ•ŠλŠ” 경우, 특히 μ‹±κΈ€ νŽ˜μ΄μ§€(SPA)인 경우 μ‚¬μš©λ˜μ§€ μ•Šμ€ setTimeout() μ½”λ“œκ°€ λ©”λͺ¨λ¦¬μ— 계속 남아 μžˆμ„ 수 있으며 κ°€λΉ„μ§€μ»¬λ ‰μ…˜(GB)에 μ˜ν•˜μ—¬ 회수 λ˜μ§€ μ•Šμ€ 경우 μ„±λŠ₯μ €ν•˜μ˜ 원인이 λœλ‹€.
λ°˜λ“œμ‹œ setTimeout() μ΄λ²€νŠΈλŠ” 이벀트λ₯Ό μ œκ±°ν•˜λŠ” μ½”λ“œ μ—­μ‹œ ν•„μš”ν•˜λ©°, clearTimeout()은 μ„€μ •λœ setTimeout()을 μ œκ±°ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€.

profile
boma91@gmail.com
post-custom-banner

0개의 λŒ“κΈ€