๋๋ฐ์ด์ฑ(Debouncing)
๐ ๋๋ฐ์ด์ฑ(debouncing)
- ์ด๋ฒคํธ๋ฅผ ๊ทธ๋ฃนํํ์ฌ ํน์ ์๊ฐ์ด ์ง๋ ํ ํ๋์ ์ด๋ฒคํธ๋ง ๋ฐ์ํ๋๋ก ํ๋ ๊ธฐ์
- ์ฐ์ด์ด ํธ์ถ๋๋ ํจ์๋ค ์ค ๋ง์ง๋ง ํจ์(๋๋ ์ ์ผ ์ฒ์)๋ง ํธ์ถํ๋๋ก ํ๋ ๊ฒ
๋๋ฐ์ด์ฑ ๊ธฐ์ ๋ ๊ฒ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ์๋
j
ja
jav
java
์ฒ๋ผ ํค์๋ ํ๋ํ๋ ์ธ์ํด์ ํค์๋ ํ๋์ ๋งค๋ฒ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ ์ฒ๋ฆฌํด์ผํ๋ ์ผ์ด ์ฌ๋ฌ๋ฒ์ ์์ฒญ์ด ์์๋ ์ต์ข (ํน์ ์ฒ์) ์์ฒญ์ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ง ๋ด๋๊ฒ ํ๋๊ฒ ๋๋ฐ์ด์ฑ์ ๋๋ค.
var timer;
document.querySelector("#input").addEventListener("input", function (e) {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function () {
console.log("์ฌ๊ธฐ์ ajax ์์ฒญ", e.target.value);
}, 200);
});
- ํ์๋ฅผ ์น ๋(input ์ด๋ฒคํธ ๋ฐ์)๋ง๋ค ํ์ด๋จธ๋ฅผ ์ค์ ํ๋ค.
- 200ms๋์ ์ ๋ ฅ์ด ์์ผ๋ฉด ์ ๋ ฅ์ด ๋๋ ๊ฒ์ผ๋ก ํ๋ค. (์๊ฐ ์์ ์ค์ ๊ฐ๋ฅ)
- 200ms ์ด์ ์ ํ์ ์ ๋ ฅ์ด ๋ฐ์ํ๋ฉด ์ด์ ํ์ด๋จธ๋ ์ทจ์ํ๊ณ ์๋ก์ด ํ์ด๋จธ๋ฅผ ๋ค์ ์ค์ ํ๋ค.
๐ฌ ์ต์ ๋๊ธ