A programozók időzítési eseményeket használnak bizonyos kódok végrehajtásának késleltetésére vagy a kód meghatározott időközönként történő megismétlésére.
A JavaScript könyvtárban két natív függvény van, amelyet ezeknek a feladatoknak a végrehajtására használnak: setTimeout()
és setInterval()
.
setTimeout
setTimeout()
arra szolgál, hogy az átadott függvény végrehajtását meghatározott idővel késleltesse.
Két paraméter adható át setTimeout()
: a meghívni kívánt funkció, valamint az az idő milliszekundumban, amely késlelteti a függvény végrehajtását.
Ne feledje, hogy 1 másodperc alatt 1000 milliszekundum (ms) van, tehát 5000 ms egyenlő 5 másodperccel.
setTimeout()
a függvényt az első argumentumból hajtja végre egyszer a megadott idő letelte után.
Példa:
let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); }
Amikor a delayTimer
függvényt hívják, akkor futni fog setTimeout
. 3 másodperc (3000 ms) elteltével végrehajtja delayedFunction
a figyelmeztetést.
setInterval
Használja setInterval()
a végrehajtások közötti késleltetéssel megismételhető funkció megadását.
Ismét két paramétert adunk át setInterval()
: a meghívni kívánt függvénynek, valamint a függvény minden egyes hívásának késleltetéséhez szükséges idő milliszekundumban.
setInterval()
addig folytatja, amíg ki nem tisztázzák.
Példa:
let intervalID; function repeatEverySecond() { intervalID = setInterval(sendMessage, 1000); } function sendMessage() { console.log(“One second elapsed.”); }
Amikor a kód meghívja a függvényt repeatEverySecond
, akkor futni fog setInterval
. másodpercenként (1000 ms) setInterval
futtatja a funkciót sendMessage
.
clearTimeout és clearInterval
Az időzítési események leállításához megfelelő natív funkciók is vannak: clearTimeout()
és clearInterval()
.
Talán észrevette, hogy a fenti időzítő funkciók egy változóba vannak mentve. Amikor a setTimeout
vagy a setInterval
függvény fut, hozzárendel egy számot, amely menti ezt a változót. Ne feledje, hogy a JavaScript mindezt a háttérben végzi.
Ez a generált szám egyedi az időzítők minden példányához. Ez a hozzárendelt szám azonosítja az időzítőket is, amikor le akarja állítani őket. Ezért az időzítőt mindig változóra kell állítania.
A kód egyértelműsége érdekében mindig illeszkednie clearTimeout()
kell a setTimeout()
és a clearInterval()
pontokhoz setInterval()
.
Az időzítő leállításához hívja meg a megfelelő törlés funkciót, és adja át neki az időzítő ID változót, amely megegyezik a leállítani kívánt időzítővel. A szintaxis clearInterval()
és clearTimeout()
ugyanaz.
Példa:
let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); } function clearAlert() { clearTimeout(timeoutID); }