כלי אילוף כלבי שמיעה - setTimeout ()
במאמר קודם התחלתי בפיתוח איטרטיבי של תוכנית JavaScript קטנה המסייעת באילוף כלב לבצע התראות צליל. עד כה התוכנית, שתוכלו להציג כאן, כוללת לחצן אזעקה מוגדר, שכאשר לוחצים עליו, מציג התראה המציינת כי האזעקה כבה (אם כי האזעקה הנשמעת טרם הוגדרה.) כשלב הבא, אנו מתכוונים למעשה להגדיר את ההמתנה בין לחיצה על כפתור "הגדר מעורר" לבין האזעקה, כמו שהיא, כיבוי.

ב- JavaScript ובמודל אובייקט המסמך (DOM), יש חבורה של מטפלים באירועים שיחכו למשהו שיקרה (כלומר בלחיצה, onMouseOver, ...); עם זאת במקרה זה, אנו רוצים לחכות למשך פרק זמן, ה- 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"). מושבת = true
document.getElementById ("alarm_button"). value = "הגדרת אזעקה"


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