Baseline Widely available *
setInterval()
㯠Window
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ãä¸å®ã®ééãç½®ãã¦é¢æ°ãã³ã¼ãã¹ãããããç¹°ãè¿ãå¼ã³åºãã¾ãã
setInterval(code)
setInterval(code, delay)
setInterval(func)
setInterval(func, delay)
setInterval(func, delay, arg1)
setInterval(func, delay, arg1, arg2)
setInterval(func, delay, arg1, arg2, /* â¦, */ argN)
弿°
func
delay
ããªç§ãçµéãããã³ã«å®è¡ãã颿°
ã§ããæåã®å®è¡ã¯ delay
ããªç§å¾ã«è¡ããã¾ãã
code
颿°ã®ä»£ããã«æååãå«ããæ§æã許容ããã¦ããã delay
ããªç§ãçµéãããã³ã«æååãã³ã³ãã¤ã«ãã¦å®è¡ãã¾ãã ãã®æ§æã¯æ¨å¥¨ãã¾ãããeval()
ã®ä½¿ç¨ã«ã»ãã¥ãªãã£ä¸ã®ãªã¹ã¯ãããã®ã¨åãçç±ã§ãã
delay
çç¥å¯
æå®ãã颿°ã¾ãã¯ã³ã¼ããå®è¡ããåã«ã¿ã¤ãã¼ãå¾
ã¤ã¹ãæéãããªç§ (1/1000 ç§) åä½ã§æå®ãã¾ããæå®ãããªãã£ãå ´åã®æ¢å®å¤ã¯ 0 ã§ãã delay
å¤ã§è¨±ãããç¯å²ã«ã¤ãã¦ã®è©³ç´°ã¯ãå¾
ã¡æéã®å¶ç´ãã覧ãã ããã
arg1
, â¦, argN
çç¥å¯
ã¿ã¤ãã¼ãæºäºããã¨ãã«ã func ã§æå®ãã颿°ã«æ¸¡ã追å ã®å¼æ°ã§ãã
setInterval()
ã¡ã½ããã¯ãå¼ã³åºãã«ãã£ã¦ä½æãããã¤ã³ã¿ã¼ãã«ã¿ã¤ãã¼ã䏿ã«èå¥ããæ£ã®æ´æ°ï¼é常㯠1 ãã 2,147,483,647 ã®ç¯å²ï¼ãè¿ãã¾ãããã®èå¥åã¯ããããã¤ã³ã¿ã¼ãã« IDãã¨å¼ã°ãã clearInterval()
ã«æ¸¡ããã¨ã§ãæå®ãã颿°ã®å復å®è¡ã忢ãããã¨ãã§ãã¾ãã
åãã°ãã¼ãã«ç°å¢ï¼ç¹å®ã®ã¦ã£ã³ãã¦ãã¯ã¼ã«ã¼ãªã©ï¼ã§ã¯ãå ã®ã¿ã¤ãã¼ãã¢ã¯ãã£ãã§ããéããã¤ã³ã¿ã¼ãã« ID ã¯ç¢ºå®ã«ä¸æã¨ãªããããæ°ããã¤ã³ã¿ã¼ãã«ã¿ã¤ãã¼ã«ã¯åå©ç¨ããã¾ããããã ããã°ãã¼ãã«ç°å¢ãç°ãªãã¨ãããããç¬ç«ããã¤ã³ã¿ã¼ãã« ID ã®ãã¼ã«ã管çããã¾ãã
setInterval()
㨠setTimeout()
ã¯åã ID ãã¼ã«ãå
±æãã¦ããã clearInterval()
㨠clearTimeout()
ã¯æè¡çã«å
¥ãæ¿ãã¦ä½¿ç¨ã§ãããã¨ã«æ³¨æãã¦ãã ããã ãã ãæç¢ºãã®ããã«ãã³ã¼ããæ´åããã¨ãã¯æ··ä¹±ãé¿ããããã常ã«ä¸è´ãããããã«ããã¹ãã§ãã
ã¡ã¢: 弿° delay
ã¯ã符å·ä»ã 32 ãããæ´æ°ã«å¤æããã¾ãã IDL ã«ããã符å·ä»ãæ´æ°ã®å®ç¾©ã«ãã£ã¦ãdelay
ã¯äºå®ä¸ 2147483647msãããã 24.8 æ¥ã«å¶éããã¾ãã
以ä¸ã®ä¾ã¯ã setInterval()
ã®åºæ¬çãªæ§æã示ãã¾ãã
const intervalID = setInterval(myCallback, 500, "Parameter 1", "Parameter 2");
function myCallback(a, b) {
// ããã«ã³ã¼ããè¨è¿°ãã¾ãã
// 弿°ã¯å®å
¨ã«çç¥å¯è½ã§ãã
console.log(a);
console.log(b);
}
ä¾ 2: 2 ã¤ã®è²ãåãæ¿ãã
以ä¸ã®ä¾ã¯åæ¢ãã¿ã³ãæ¼ãã¾ã§ã1 ç§ããã« flashtext()
颿°ãå¼ã³åºãã¾ãã
<div id="my_box">
<h3>Hello World</h3>
</div>
<button id="start">éå§</button>
<button id="stop">忢</button>
CSS
.go {
color: green;
}
.stop {
color: red;
}
JavaScript
// intervalID ãæ ¼ç´ãã夿°
let intervalId;
function changeColor() {
// æ¢ã«ã¤ã³ã¿ã¼ãã«ãã»ããã¢ããããã¦ãããã©ãããæ¤æ»
intervalId ??= setInterval(flashText, 1000);
}
function flashText() {
const oElem = document.getElementById("my_box");
oElem.className = oElem.className === "go" ? "stop" : "go";
}
function stopTextColor() {
clearInterval(intervalId);
// 夿°ãã intervalID ãè§£æ¾
intervalId = null;
}
document.getElementById("start").addEventListener("click", changeColor);
document.getElementById("stop").addEventListener("click", stopTextColor);
çµæ "this" åé¡
setInterval()
ã«ï¼ãã£ã¨è¨ãã¨ä»ã®ã©ããªé¢æ°ã§ãï¼ã¡ã½ãããæ¸¡ãã¨ãééã£ã this
ã®å¤ã§å¼ã³åºããããã¨ãããã¾ãã ãã®åé¡ã¯ JavaScript ãªãã¡ã¬ã³ã¹ã§è©³ãã説æãã¦ãã¾ãã
setInterval()
ã«ãã£ã¦å®è¡ãããã³ã¼ãã¯ãå¼ã³åºãå
ã¨ã¯å¥ã®å®è¡ã³ã³ããã¹ãå
ã§å®è¡ããã¾ãããã®çµæãå¼ã³åºããã颿°ã® this
ãã¼ã¯ã¼ã㯠window
ï¼ã¾ã㯠global
ï¼ãªãã¸ã§ã¯ãã«è¨å®ããã¾ãããã㯠setTimeout
ãå¼ã³åºãã颿°ã¨ã¯ this
ã®å¤ãç°ãªãã¾ãã以ä¸ã®ä¾ãã覧ãã ããï¼ããã§ã¯ setInterval()
ã§ã¯ãªã setTimeout()
ã使ç¨ãã¦ãã¾ãããã©ã¡ãã®ã¿ã¤ãã¼ã§ãåé¡ã¯åãã§ãï¼ã
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); // "[object Window]" 㨠1 ç§å¾ã«è¡¨ç¤º
setTimeout(myArray.myMethod, 1500, "1"); // "undefined" 㨠1.5 ç§å¾ã«è¡¨ç¤º
// 'this' ãªãã¸ã§ã¯ãã .call ã§æ¸¡ãã¦ãåä½ãã¾ããã
// ããã¯ã myArray.myMethod å
ã® this ã®å¤ã夿´ãããã®ã«ã
// setTimeout èªä½ã®ä¸ã§ this ã®å¤ã夿´ããã¦ãã¾ãããã§ãã
// å®éãsetTimeout ã®ã³ã¼ãã¯ãããã¦ã£ã³ãã¦ãªãã¸ã§ã¯ãã§ãããã¨ãæå¾
ãã¦ãããããã¨ã©ã¼ã«ãªãã¾ãã
setTimeout.call(myArray, myArray.myMethod, 2000); // ã¨ã©ã¼: "NS_ERROR_XPC_BAD_OP_ON_WN_PROTO: Illegal operation on WrappedNative prototype object"
setTimeout.call(myArray, myArray.myMethod, 2500, 2); // åãã¨ã©ã¼
ãã®ä¾ã§ãããã¨ãããæ§æ¥ã® JavaScript ã§ã³ã¼ã«ããã¯é¢æ°ã« this
ãªãã¸ã§ã¯ããæ¸¡ãæ¹æ³ã¯ããã¾ããã
æè¿ã® JavaScript ã©ã³ã¿ã¤ã ã¯ãã¹ã¦ï¼ãã©ã¦ã¶ã¼ã¨ããã以å¤ãå«ãï¼ãã¢ãã¼é¢æ°ã¨ this
表è¨ã¨çµã¿åãããã¨ã myArray
ã¡ã½ããã®å
é¨ã«ããå ´å㯠setInterval(() => this.myMethod())
ã¨è¨è¿°ãããã¨ãå¯è½ã§ãã
IE ã«å¯¾å¿ããå¿
è¦ãããå ´åã¯ãFunction.prototype.bind()
ã¡ã½ããã使ç¨ããã¨ãä¸ãããã颿°ã¸ã®ãã¹ã¦ã®å¼ã³åºãã«å¯¾ã㦠this
ã¨ãã¦ä½¿ç¨ããå¤ãæå®ãããã¨ãã§ãã¾ããããã«ããã颿°ãå¼ã³åºãããã¨ãã®ã³ã³ããã¹ãã«ãã£ã¦ this
ãä½ã§ããããä¸æç¢ºãªåé¡ãç°¡åã«åé¿ãããã¨ãã§ãã¾ãã
setInterval()
颿°ã¯ä¸è¬ã«ãã¢ãã¡ã¼ã·ã§ã³ã®ããã«ä½åº¦ãå®è¡ããã颿°ã®ããã«å¾
ã¡æéãè¨å®ããã®ã«ä½¿ããã¾ãã clearInterval()
ã使ã£ã¦ã¤ã³ã¿ã¼ãã«ãåãæ¶ããã¨ãã§ãã¾ãã
æå®æéå¾ã«ä¸åº¦ã ã颿°ãå¼ã³åºãããå ´åã«ã¯ã setTimeout()
ã使ç¨ãã¦ãã ããã
setInterval()
ã®ã³ã¼ã«ããã¯ã¯é çªã« setInterval()
ãå¼ã³åºããæåã®ã¤ã³ã¿ã¼ãã«ãã¾ã é²è¡ä¸ã§ãã£ã¦ããå¥ã®ã¤ã³ã¿ã¼ãã«ãéå§ããããã¨ãã§ãã¾ãããã®ãã¨ãããã©ã¼ãã³ã¹ã«ä¸ããæ½å¨çãªå½±é¿ã軽æ¸ããããã«ãã¤ã³ã¿ã¼ãã«ã 5 ã¬ãã«ãè¶
ãã¦ãã¹ããããã¨ããã©ã¦ã¶ã¼ã¯èªåçã«ã¤ã³ã¿ã¼ãã«ã®æå°å¤ã¨ã㦠4 ããªç§ãå¼·å¶ããããã«ãªãã¾ããæ·±ããã¹ãããã setInterval()
ã®å¼ã³åºãã§ 4ms æªæºã®å¤ãæå®ãããã¨ããã¨ã 4ms ã«åºå®ããã¾ãã
ãã©ã¦ã¶ã¼ã¯ãç¶æ³ã«ãã£ã¦ã¯ããã«å³ããæå°ééå¤ãå¼·å¶ããããããã¾ããããããã¯ä¸è¬çãªãã¨ã§ã¯ããã¾ãããã¾ããã³ã¼ã«ããã¯ã®å¼ã³åºãã®éã«çµéããå®éã®æéã¯ãä¸ãããã delay
ãããé·ããããããªããã¨ã«æ³¨æãã¦ãã ãããä¾ã«ã¤ãã¦ã¯å¾
ã¡æéãæå®å¤ããé·ãçç±ãåç
§ãã¦ãã ããã
ãã¸ãã¯ã®å®è¡æéãã¤ã³ã¿ã¼ãã«æéããé·ããªãå¯è½æ§ãããå ´åã¯ãsetTimeout()
ã使ç¨ãã¦ååä»ã颿°ãå帰çã«å¼ã³åºããã¨ãæ¨å¥¨ãã¾ããä¾ãã° 5 ç§ããã«ãªã¢ã¼ããµã¼ãã¼ã¸æ¥ç¶ããããã« setInterval()
ã使ç¨ããå ´åããããã¯ã¼ã¯ã®é
å»¶ããµã¼ãã¼ã®å¿çããªããªã©ãã¾ãã¾ãªåé¡ã§ãå²ãå½ã¦ãããæéå
ã«ãªã¯ã¨ã¹ããå®äºããªãå¯è½æ§ãããã¾ãããã®ãããå¿
ãããé çªã©ããã«ã¯è¿ããªã XHR ãªã¯ã¨ã¹ãããã¥ã¼å
ã«ãããã¨ã«æ°ã¥ãããããã¾ããã
ãã®å ´åã¯ãå帰ç㪠setTimeout()
ã®ãã¿ã¼ã³ãæ¨å¥¨ãã¾ãã
(function loop() {
setTimeout(() => {
// Your logic here
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