تایمر – جامعه dev

در JavaScript ، از تایمرها برای اجرای کد در زمان های خاص یا اجرای کد به طور مکرر پس از مدت مشخصی استفاده می شود. JavaScript دو نوع تایمر اصلی را ارائه می دهد: SettimeOut () و SetInterval (). هر دو به شما امکان می دهند کد را پس از یک تأخیر خاص برنامه ریزی کنید ، اما آنها متفاوت رفتار می کنند.
1. Settimeout ()
- SetTimeOut () به شما امکان می دهد پس از تأخیر مشخص ، یک عملکرد یا یک بلوک کد را اجرا کنید ، اما فقط یک بار کد را اجرا می کند.
- چگونه کار می کند:- شما به JavaScript می گویید ، “منتظر این مقدار زمان باشید و سپس این کد را اجرا کنید.”
نحو
setTimeout(function, delay, ...args);
نمونه
function sayHello() {
console.log("Hello, world!");
}
// Call sayHello() after 3 seconds (3000 milliseconds)
setTimeout(sayHello, 3000);
در این مثال ، sayHello
عملکرد بعد از 3 ثانیه اجرا می شود. در setTimeout()
عملکرد دو آرگومان طول می کشد:
- عملکردی که می خواهید اجرا کنید (
sayHello
). - تأخیر در میلی ثانیه (3000 میلی ثانیه = 3 ثانیه).
- … args (اختیاری): آرگومان های اضافی که هنگام اجرای آن به عملکرد منتقل می شوند.
نکات مهم:
- غیر مسدود کردن: SettimeOut () بقیه کد را از اجرای آن مسدود نمی کند. JavaScript در حالی که منتظر زمان بندی است ، به اجرای سایر دستورالعمل ها ادامه می دهد.
- میلی ثانیه: تأخیر در میلی ثانیه مشخص شده است و حداقل تأخیر 1 میلی ثانیه است.
- اجرای تک: پس از زمان مشخص شده ، عملکرد پاسخ به تماس فقط یک بار فراخوانی می شود.
2. setInterval ()
- SetInterval () بارها و بارها یک قطعه کد یا عملکرد را در یک بازه مشخص (در میلی ثانیه) اجرا می کند ، تا زمانی که به آن بگویید که متوقف شود.
- چگونه کار می کند:- شما به JavaScript می گویید ، “این کد را در هر زمان X اجرا کنید.”
نحو
setInterval(function, interval, ...args);
نمونه
function sayHello() {
console.log("Hello again!");
}
// Call sayHello() every 2 seconds (2000 milliseconds)
setInterval(sayHello, 2000);
- در اینجا ، کد داخل setInterval () هر 2 ثانیه اجرا می شود.
نکات مهم:
- غیر مسدود کردن: مشابه SetTimeout () ، SetInterval () غیر مسدود کننده است. مرورگر در حالی که منتظر فاصله بعدی است ، کارهای دیگر را ادامه می دهد.
- تکرار: بر خلاف SetTimeOut () ، که فقط یک بار اجرا می شود ، SetInterval () اجرای عملکرد پاسخ به تماس را در بازه مشخص ادامه می دهد.
- ادامه تا متوقف شدن: عملکرد به طور مداوم در فاصله زمانی مشخص می شود تا زمانی که به صورت دستی پاک شود.
تایمرهای پاکسازی
بعضی اوقات ، ممکن است بخواهید قبل از اتمام یک تایمر متوقف شوید. شما می توانید این کار را با ClearTimeout () و ClearInterval () انجام دهید.
متوقف کردن تایمر SettimeOut ():
اگر می خواهید قبل از اجرای آن ، زمان را لغو کنید ، می توانید از ClearTimeout () استفاده کنید:
function sayHello() {
console.log("Hello, world!");
}
const timeoutId = setTimeout(sayHello, 4000);
// Stop the timeout before it runs
clearTimeout(timeoutId);
متوقف کردن تایمر setInterval ():
const intervalId = setInterval(sayHello, 1000);
// Stop the interval after 5 seconds
setTimeout(() => {
clearInterval(intervalId);
console.log("Interval timer stopped");
}, 5000);
- در اینجا ، ابتدا یک بازه را شروع می کنیم که هر ثانیه اجرا می شود. سپس ، پس از 5 ثانیه ، ما از SettimeOut () برای متوقف کردن فاصله با استفاده از ClearInterval (IntervalId) استفاده می کنیم.
خلاصه مفاهیم کلیدی:
- SetTimeout (): یک عملکرد را یک بار پس از تأخیر مشخص انجام می دهد.
- SetInterval (): یک تابع را به طور مکرر در فواصل مشخص انجام می دهد.
- ClearTimeout () / ClearInterval (): برای لغو تایمرها استفاده می شود.
- طبیعت ناهمزمان: تایمرها اجرای کد دیگر را مسدود نمی کنند. آنها به صف رویداد اضافه می شوند و پس از خالی بودن پشته تماس اجرا می شوند.
- دقت: دقت تایمر به دلیل سایر عوامل مانند محاسبات سنگین یا محدودیت های مرورگر تضمین نمی شود.