أداة تدريب الكلاب على السمع - setTimeout ()
في مقال سابق ، بدأت التطوير التكراري لبرنامج جافا سكريبت صغير للمساعدة في تدريب كلب للقيام بالتنبيهات الصوتية. حتى الآن ، يشتمل البرنامج ، الذي يمكنك عرضه هنا ، على زر إنذار محدد ، عند الضغط عليه ، ينبثق تنبيهًا يفيد بأن المنبه قد توقف (على الرغم من أن المنبه المسموع لم يتم تكوينه بعد.) كخطوة تالية ، سوف تقوم في الواقع بضبط الانتظار بين الضغط على زر "ضبط المنبه" والتنبيه ، كما هو ، الانطلاق.

يشتمل JavaScript وطراز كائن المستند (DOM) على مجموعة من معالجات الأحداث لانتظار حدوث شيء ما (أي عند النقر, على الفأرة فوق، ...)؛ ومع ذلك ، في هذه الحالة ، نريد أن ننتظر فترة زمنية طويلة ، حيث يوفر DOM طريقة للقيام بذلك أيضًا setTimeout (). setTimeout () يتطلب وسيطين أو جزءًا من التعليمات البرمجية أو وظيفة يتم تشغيلها ووقت الانتظار بالميللي ثانية قبل تشغيلها. set_timeout () يمكن أن يتخذ أيضًا خيارًا ثالثًا اختياريًا يحدد لغة البرمجة النصية المستخدمة - JavaScript أو JScript أو VBScript (هذا جزء من DOM ، وليس JavaScript ، تذكر.)

يبدو رمزنا الجديد كما يلي:


الدالة do_alarm () {
/ / تحديد الوقت للانتظار في ثوان
wait_secs = 52؛ / / الآن ، فقط قم بتعريفه
/ / انتظر الوقت المناسب للوقوف على المنبه
setTimeout (sound_alarm () ، (wait_secs * 1000))
}


هذا أمر رائع ، لكن من الصعب تحديد ذلك ، لأنه لا يوجد شيء يتغير بعد الضغط على الزر حتى يحين الوقت. ومع ذلك ، يمكن أن يساعدنا DOM في هذا الأمر أيضًا. أضفت 2 خطوط التالية إلى بداية do_alarm () وظيفة:


// علامة المنبه كما هو محدد
document.getElementById ( "alarm_button"). المعوقين = صحيح
document.getElementById ("alarm_button"). value = "Alarm Set"


يؤدي هذا إلى تغيير الزر الذي ضغطنا عليه لضبط المنبه على "مجموعة التنبيه" وتعطيله. إذا أردنا أن نكون قادرين على استخدام المنبه مرة أخرى ، فسوف يتعين علينا تغيير الزر مرة أخرى إلى حالته الأصلية. أضفت هذا إلى وظيفة sound_alarm (). يمكنك عرض كل الكود وتجربة مثال عملي هنا.


تعليمات الفيديو: كريستيانو رونالدو.. هل هو موهوب أم مصنوع؟ (قد 2024).