אירועי תזמון JavaScript: setTimeout ו- setInterval

מתכנתים משתמשים באירועי תזמון כדי לעכב ביצוע קוד מסוים, או לחזור על קוד במרווח מסוים.

בספריית JavaScript קיימות שתי פונקציות מקומיות המשמשות לביצוע משימות אלה: setTimeout()ו- setInterval().

setTimeout

setTimeout() משמש לעיכוב ביצוע הפונקציה שעברה בפרק זמן מוגדר.

ישנם שני פרמטרים שאתה מעביר אליהם setTimeout(): הפונקציה שאליה ברצונך להתקשר, ומשך הזמן באלפיות השנייה לעיכוב ביצוע הפעולה.

זכור שיש 1000 אלפיות השנייה (שניות) בשנייה אחת, לכן 5000 אלפיות שווה ל -5 שניות.

setTimeout() יבצע את הפונקציה מהוויכוח הראשון פעם אחת לאחר שחלף הזמן שצוין.

דוגמא:

let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); }

כאשר delayTimerנקראת הפונקציה היא תפעל setTimeout. לאחר 3 שניות (3000 אלפיות שניים), זה יבוצע delayedFunctionאשר ישלח התראה.

setInterval

השתמש setInterval()כדי לציין פונקציה שתחזור עליה עם עיכוב זמן בין הביצועים.

שוב, שני פרמטרים מועברים setInterval(): הפונקציה שאליה ברצונך להתקשר, ומשך הזמן באלפיות השנייה לעיכוב כל שיחה בפונקציה.

setInterval() ימשיך לבצע עד לניקוי.

דוגמא:

let intervalID; function repeatEverySecond() { intervalID = setInterval(sendMessage, 1000); } function sendMessage() { console.log(“One second elapsed.”); }

כאשר הקוד שלך מתקשר לפונקציה repeatEverySecondהוא יפעל setInterval. setIntervalיפעיל את הפונקציה sendMessageבכל שנייה (1000 אלפיות שנייה).

clearTimeout ו- clearInterval

ישנן פונקציות מקומיות המתאימות לעצירת אירועי התזמון: clearTimeout()ו- clearInterval().

יתכן ששמת לב שכל פונקציית טיימר לעיל נשמרת למשתנה. כאשר הפונקציה setTimeoutאו setIntervalפועלת, מוקצה לה מספר שנשמר במשתנה זה. שים לב ש- JavaScript עושה את כל זה ברקע.

מספר שנוצר זה ייחודי לכל מופע של טיימרים. המספר המוקצה הזה הוא גם אופן זיהוי הטיימרים כשרוצים לעצור אותם. מסיבה זו, עליך תמיד להגדיר את הטיימר שלך למשתנה.

למען בהירות הקוד שלך, אתה תמיד צריך להתאים clearTimeout()ל setTimeout()ו clearInterval()ל setInterval().

כדי לעצור טיימר, התקשר לפונקציה הברורה המתאימה והעביר אותה למשתנה מזהה הטיימר שתואם את הטיימר שברצונך לעצור. התחביר עבור clearInterval()והוא clearTimeout()זהה.

דוגמא:

let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); } function clearAlert() { clearTimeout(timeoutID); }