Baseline Widely available *
Window
ë° Worker
ì¸í°íì´ì¤ìì ì ê³µëë setInterval()
ë©ìëë ê° í¸ì¶ ì¬ì´ì ê³ ì ë ìê° ì§ì°ì¼ë¡ í¨ì를 ë°ë³µì ì¼ë¡ í¸ì¶íê±°ë ì½ë ì¤ëí«ì ì¤íí©ëë¤.
ì´ ë©ìëë ê°ê²©(interval)ì ê³ ì íê² ìë³í ì ìë interval ID를 ë°ííë¯ë¡ ëì¤ì clearInterval()
í¨ì를 í¸ì¶íì¬ ì ê±°í ì ììµëë¤.
setInterval(code)
setInterval(code, delay)
setInterval(func)
setInterval(func, delay)
setInterval(func, delay, arg0)
setInterval(func, delay, arg0, arg1)
setInterval(func, delay, arg0, arg1, /* ⦠,*/ argN)
매ê°ë³ì
func
delay
(ë°ë¦¬ì´)ë§ë¤ ì¤íëë function
ì
ëë¤. 첫 ë²ì§¸ ì¤íì delay
(ë°ë¦¬ì´) íì ë°ìí©ëë¤.
code
ì íì 구문ì ì¬ì©íë©´ í¨ì ëì 문ìì´ì í¬í¨í ì ììµëë¤. 모ë delay
(ë°ë¦¬ì´)ë§ë¤ ì»´íì¼ëê³ ì¤íë©ëë¤. ì´ êµ¬ë¬¸ì eval()
ì ì¬ì©íë ê²ê³¼ ê°ì ì´ì ë¡ ë³´ìì ìííë¯ë¡ "ê¶ì¥íì§ ììµëë¤".
delay
Optional
íì´ë¨¸ê° ì§ì ë í¨ì ëë ì½ë ì¤í ì¬ì´ì ì§ì°í´ì¼ íë ë°ë¦¬ì´(1/1000ì´) ë¨ìì ìê°ì
ëë¤. ì§ì íì§ ìì¼ë©´ 기본 ê°ì 0ì
ëë¤. delay
ê°ì íì© ë²ìì ëí ìì¸í ë´ì©ì ìëì ì§ì° ì íì 참조íì¸ì.
arg0, â¦, argN
Optional
íì´ë¨¸ê° ë§ë£ëë©´ func ìì ì§ì í í¨ìë¡ ì ë¬ëë ì¶ê° ì¸ìì ëë¤.
ë°íë intervalID
ë setInterval()
í¸ì¶ë¡ ìì±ë, íì´ë¨¸ë¥¼ ìë³íë 0ì´ ìë ì«ì ê°ì
ëë¤. ì´ ê°ì clearInterval()
ì ì ë¬ëì´ intervalì ì·¨ìí ì ììµëë¤.
setInterval()
ë° setTimeout()
ì ëì¼í ID íì ê³µì íê³ clearInterval()
ë° clearTimeout()
ì 기ì ì ì¼ë¡ ìí¸ êµííì¬ ì¬ì©í ì ììì ìê³ ìì¼ë©´ ëìì´ ë ì ììµëë¤. ê·¸ë¬ë ëª
íì±ì ìí´ ì½ë를 ì ì§ ê´ë¦¬í ë í¼ëì í¼í기 ìí´ íì ì¼ì¹íëë¡ ë
¸ë ¥í´ì¼ í©ëë¤.
ìì ìì 1: 기본 구문Note:
delay
ì¸ìë ë¶í¸ ìë 32-bit ì ìë¡ ë³íë©ëë¤. ì´ë IDLìì ë¶í¸ ìë ì ìë¡ ì§ì ë기 ë문ìdelay
를 2147483647 msë¡ í¨ê³¼ì ì¼ë¡ ì íí©ëë¤.
ë¤ì ìì ë setInterval()
ì 기본 구문ì ë³´ì¬ì¤ëë¤.
const intervalID = setInterval(myCallback, 500, "Parameter 1", "Parameter 2");
function myCallback(a, b) {
// ì¬ê¸°ì ì½ë를 ìì±íì¸ì
// 매ê°ë³ìë ìì í ì íì ì
ëë¤.
console.log(a);
console.log(b);
}
ìì 2: ë ê°ì§ ìì ë³íí기
ë¤ì ìì ë ì¤ì§ ë²í¼ì ë를 ëê¹ì§ 1ì´ì í ë²ì© flashtext()
í¨ì를 í¸ì¶í©ëë¤.
<div id="my_box">
<h3>Hello World</h3>
</div>
<button id="start">Start</button>
<button id="stop">Stop</button>
CSS
.go {
color: green;
}
.stop {
color: red;
}
JavaScript
// intervalID를 ì ì¥í ë³ìì
ëë¤
let nIntervId;
function changeColor() {
// ê°ê²©ì´ ì´ë¯¸ ì¤ì ëì´ ìëì§ íì¸í©ëë¤
if (!nIntervId) {
nIntervId = setInterval(flashText, 1000);
}
}
function flashText() {
const oElem = document.getElementById("my_box");
oElem.className = oElem.className === "go" ? "stop" : "go";
}
function stopTextColor() {
clearInterval(nIntervId);
// ë³ììì intervalID를 í´ì²´í©ëë¤
nIntervId = null;
}
document.getElementById("start").addEventListener("click", changeColor);
document.getElementById("stop").addEventListener("click", stopTextColor);
ê²°ê³¼
ê°ì´ 보기: clearInterval()
ë©ìë를 setInterval()
ëë ë¤ë¥¸ í¨ìì ì ë¬íë©´ ì못ë this
ê°ì¼ë¡ í¸ì¶ë©ëë¤. ì´ ë¬¸ì ë JavaScript referenceìì ìì¸í ì¤ëª
í©ëë¤.
setInterval()
ì ìí´ ì¤íëë ì½ëë í¸ì¶ë í¨ìì ë³ëì ì¤í 컨í
ì¤í¸ìì ì¤íë©ëë¤. ê²°ê³¼ì ì¼ë¡ í¸ì¶ë í¨ìì this
í¤ìëë window
(ëë global
) ê°ì²´ë¡ ì¤ì ëë©° setTimeout
ì í¸ì¶í í¨ìì this
ê°ê³¼ ëì¼íì§ ììµëë¤. setTimeout()
ëì setInterval()
ì ì¬ì©íì¬ ë¤ì ìì 를 참조íì¸ì(ì¬ì¤ 문ì ë ë íì´ë¨¸ 모ë ëì¼í©ëë¤)
myArray = ["zero", "one", "two"];
myArray.myMethod = function (sProperty) {
alert(arguments.length > 0 ? this[sProperty] : this);
};
myArray.myMethod(); // "zero,one,two"ê° ì¶ë ¥ë©ëë¤
myArray.myMethod(1); // "one"ê° ì¶ë ¥ë©ëë¤
setTimeout(myArray.myMethod, 1000); // 1ì´ í "[object Window]"ê° ì¶ë ¥ë©ëë¤
setTimeout(myArray.myMethod, 1500, "1"); // 1,5ì´ íì "undefined"ê° ì¶ë ¥ë©ëë¤
// myArray.myMethod ë´ìì thisì ê°ì ë³ê²½íë ¤ë ëì
// setTimeout ë´ë¶ìì thisì ê°ì ë³ê²½í기 ë문ì
// .callê³¼ í¨ê» 'this'ê°ì²´ë¥¼ ì ë¬íë ê²ì ëìíì§ ììµëë¤
// ì¬ì¤ setTimeout ì½ëë thisê° window ê°ì²´ê° ë ê²ì¼ë¡ ììí기 ë문ì ì¤ë¥ê° ë°ìí©ëë¤
setTimeout.call(myArray, myArray.myMethod, 2000); // error: "NS_ERROR_XPC_BAD_OP_ON_WN_PROTO: Illegal operation on WrappedNative prototype object"
setTimeout.call(myArray, myArray.myMethod, 2500, 2); // ìì ëì¼í ìë¬ê° ë°ìí©ëë¤
ë³´ìë¤ìí¼ ë ê±°ì JavaScriptììë this
ê°ì²´ë¥¼ ì½ë°± í¨ìì ì ë¬í ë°©ë²ì´ ììµëë¤.
모ë ìµì JavaScript ë°íì(ë¸ë¼ì°ì ë° ê¸°í)ì lexical this
를 ì¬ì©íì¬ íì´í í¨ì를 ì§ìí©ëë¤. myArray
ë©ìë ë´ë¶ì ìë ê²½ì° setInterval(() => this.myMethod())
를 ìì±í ì ììµëë¤.
IE를 ì§ìí´ì¼ íë ê²½ì° ì§ì ë í¨ìì 모ë í¸ì¶ì this
ì ê°ì ê³ ì í ì ìë Function.prototype.bind()
ë©ìë를 ì¬ì©íì¸ì. ì´ë ê² íë©´ í¨ìê° í¸ì¶ë 컨í
ì¤í¸ì ë°ë¼ this
ê° ë¬´ìì¸ì§ ëª
ííì§ ìì 문ì 를 ì½ê² ì°íí ì ììµëë¤.
setInterval()
í¨ìë ì¼ë°ì ì¼ë¡ ì ëë©ì´ì
ê³¼ ê°ì´ ë°ë³µí´ì ì¤íëë í¨ìì ì§ì°ì ì¤ì íë ë° ì¬ì©ë©ëë¤. clearInterval()
ì ì¬ì©íì¬ intervalì ì·¨ìí ì ììµëë¤.
ì§ì ë ì§ì° í í¨ì를 "íë²" í¸ì¶íë ¤ë©´ setTimeout()
를 ì¬ì©íì¸ì.
ê°ê²©(interval)ì ì¤ì²©ë ì ììµëë¤. ì¦, setInterval()
ì ëí ì½ë°±ì´ setInterval()
ì í¸ì¶íì¬ ì²« ë²ì§¸ ê°ê²©ì´ ê³ì ì§í ì¤ì¼ì§ë¼ë ë¤ë¥¸ ê°ê²©ì ì¤íì ììí ì ììµëë¤. ì´ê²ì´ ì±ë¥ì ë¯¸ì¹ ì ìë ì ì¬ì ì¸ ìí¥ì ìíí기 ìí´ ê°ê²©ì´ 5ê° ìì¤ ì´ìì¼ë¡ ì¤ì²©ëë©´ ë¸ë¼ì°ì ë ìëì¼ë¡ ê°ê²©ì ëí´ 4 ms ìµì ê°ì ì ì©í©ëë¤. ì¤ì²© í¸ì¶ì´ ì¬íë setInterval()
ì í¸ì¶ìì 4 ms 미ë§ì ê°ì ì§ì íë©´ 4 msë¡ ê³ ì ë©ëë¤.
ë¸ë¼ì°ì ë ì¼ë¶ ìí©ìì ê°ê²©ì ëí´ í¨ì¬ ë ì격í ìµì ê°ì ì ì©í ì ìì§ë§ ì´ë¬í ê²½ì°ë ì¼ë°ì ì´ì§ ììì¼ í©ëë¤. ëí ì½ë°± í¸ì¶ ì¬ì´ì ì¤ì 경과 ìê°ì 주ì´ì§ delay
ë³´ë¤ ê¸¸ ì ììµëë¤. ë ë§ì ìì ë ì§ì ë ê°ë³´ë¤ ë ì¤ë ì§ì°ëë ì´ì 를 ì°¸ê³ íì¸ì.
ë¡ì§ ì¤í ìê°ì´ ê°ê²© ìê°ë³´ë¤ ì¤ë 걸릴 ê°ë¥ì±ì´ ìë ê²½ì° setTimeout()
ì ì¬ì©íì¬ ëª
ëª
ë í¨ì를 ì¬ê·ì ì¼ë¡ í¸ì¶íë ê²ì´ ì¢ìµëë¤. ì를 ë¤ì´ setInterval()
ì ì¬ì©íì¬ 5ì´ë§ë¤ ì격 ìë²ë¥¼ í´ë§íë ê²½ì° ë¤í¸ìí¬ ë기 ìê°, ìëµíì§ ìë ìë² ë° ê¸°í ì¬ë¬ 문ì ë¡ ì¸í´ ìì²ì´ í ë¹ë ìê° ë´ì ìë£ëì§ ìì ì ììµëë¤. ë°ë¼ì ë°ëì ììëë¡ ë°íëì§ ìë ë기 ì¤ì¸ XHR ìì²ì´ ìì ì ììµëë¤.
ì´ë¬í ê²½ì° ì¬ê·ì ì¸ setTimeout()
í¨í´ì´ ì í¸ë©ëë¤.
(function loop() {
setTimeout(() => {
// ë¡ì§ì ë£ì´ì£¼ì¸ì
loop();
}, delay);
})();
ì ì¤ëí«ìì ëª
ëª
ë í¨ì loop()
ê° ì ì¸ëê³ ì¦ì ì¤íë©ëë¤. loop()
ë ë¡ì§ì´ ì¤íë í setTimeout()
ë´ìì ì¬ê·ì ì¼ë¡ í¸ì¶ë©ëë¤. ì´ í¨í´ì ê³ ì ê°ê²©ììì ì¤íì ë³´ì¥íì§ ìì§ë§ ì´ì ê°ê²©ì´ ì¬ê·í기 ì ì ìë£ëììì ë³´ì¥í©ëë¤.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4