1. setTimeout():
تُستخدم لتنفيذ دالة معينة مرة واحدة بعد تأخير زمني محدد.
- الصيغة:
setTimeout(function, milliseconds, param1, param2, ...);
-
function: الدالة التي سيتم تنفيذها. -
milliseconds: التأخير الزمني بالمللي ثانية (1000 مللي ثانية = 1 ثانية). -
param1, param2, ...: معاملات اختيارية يتم تمريرها إلى الدالة. -
مثال:
function greet(name) { console.log("مرحباً، " + name + "!");}
setTimeout(greet, 3000, "أحمد"); // سيتم طباعة "مرحباً، أحمد!" بعد 3 ثوانٍ- إيقاف
setTimeout(): يُمكن إيقاف تنفيذsetTimeout()باستخدام الدالةclearTimeout()، حيث تحتاج إلى مُعرّف (ID) التوقيت الذي تم إرجاعه بواسطةsetTimeout().
let timerId = setTimeout(greet, 3000, "أحمد");
clearTimeout(timerId); // سيتم إلغاء التوقيت ولن يتم تنفيذ الدالة greet2. setInterval():
تُستخدم لتنفيذ دالة معينة بشكل متكرر على فترات زمنية محددة.
- الصيغة:
setInterval(function, milliseconds, param1, param2, ...);
-
function: الدالة التي سيتم تنفيذها. -
milliseconds: الفاصل الزمني بين مرات التنفيذ بالمللي ثانية. -
param1, param2, ...: معاملات اختيارية يتم تمريرها إلى الدالة. -
مثال:
function showTime() { let now = new Date(); console.log(now.toLocaleTimeString());}
setInterval(showTime, 1000); // سيتم عرض الوقت الحالي كل ثانية- إيقاف
setInterval(): يُمكن إيقاف تنفيذsetInterval()باستخدام الدالةclearInterval()، حيث تحتاج أيضًا إلى مُعرّف (ID) التوقيت الذي تم إرجاعه بواسطةsetInterval().
let intervalId = setInterval(showTime, 1000);
clearInterval(intervalId); // سيتم إيقاف التكرارملاحظات مهمة:
- يتم تنفيذ الدوال المُمررة إلى
setTimeout()وsetInterval()بشكل غير متزامن (asynchronously). هذا يعني أن الكود التالي سيستمر في التنفيذ دون انتظار انتهاء التوقيت. - يجب الانتباه إلى استخدام
clearInterval()لإيقافsetInterval()عند الحاجة، لتجنب استمرار تنفيذ الدالة إلى ما لا نهاية واستهلاك موارد النظام. - قد يكون هناك بعض الاختلافات الطفيفة في دقة التوقيت بسبب عوامل مختلفة مثل أداء المتصفح وحِمل النظام.
- يُمكن استخدام
requestAnimationFrame()لتحسين الأداء في بعض الحالات، خاصةً عند التعامل مع الرسوم المتحركة والتحديثات المتكررة على الشاشة. تعملrequestAnimationFrame()بالتزامن مع معدل تحديث الشاشة، مما يُحسن من سلاسة الحركة.
مثال على requestAnimationFrame():
let element = document.getElementById('myElement');let xPosition = 0;
function animate() { xPosition += 5; element.style.left = xPosition + 'px';
if (xPosition < 500) { requestAnimationFrame(animate); }}
requestAnimationFrame(animate);باختصار، تُوفر خصائص التوقيت في JavaScript أدوات قوية لتنفيذ الكود في أوقات محددة أو بشكل متكرر، مما يُمكن من إنشاء تطبيقات ويب تفاعلية وديناميكية. من المهم فهم كيفية استخدام setTimeout() و setInterval() و clearInterval() و requestAnimationFrame() بشكل صحيح لتحقيق أفضل أداء وتجنب المشاكل المحتملة.
