เครื่องมือฝึกสุนัขฟัง - setTimeout ()
ในบทความก่อนหน้านี้ฉันเริ่มต้นการพัฒนาซ้ำของโปรแกรม JavaScript ขนาดเล็กเพื่อช่วยในการฝึกสุนัขให้ทำเสียงเตือน จนถึงตอนนี้โปรแกรมที่คุณสามารถดูได้ที่นี่มีปุ่มตั้งปลุกซึ่งเมื่อกดแล้วจะปรากฏขึ้นการแจ้งเตือนที่ระบุว่าสัญญาณเตือนได้ดับลง (แม้ว่าเสียงปลุกยังไม่ได้กำหนดค่า) ในขั้นตอนต่อไปเรา กำลังจะตั้งค่าการรอคอยระหว่างการกดปุ่ม "ตั้งค่าการเตือน" และการเตือนเช่นการออกไป

JavaScript และ Document Object Model (DOM) มีกลุ่มตัวจัดการเหตุการณ์ให้รอบางสิ่งบางอย่างเกิดขึ้น (เช่น เมื่อคลิก, onMouseOver, ... ); อย่างไรก็ตามในกรณีนี้เราต้องการรอเวลาผ่านไป DOM แสดงวิธีการให้ทำเช่นกัน setTimeout (). setTimeout () ต้องมีอาร์กิวเมนต์สองตัวส่วนของรหัสหรือฟังก์ชันที่จะเรียกใช้และเวลาที่จะรอเป็นมิลลิวินาทีก่อนที่จะเรียกใช้ set_timeout () ยังสามารถใช้ตัวเลือกที่สามซึ่งเป็นตัวเลือกที่กำหนดภาษาสคริปต์ที่ใช้ - JavaScript, JScript หรือ VBScript (นี่เป็นส่วนหนึ่งของ DOM ไม่ใช่ JavaScript จำได้)

รหัสใหม่ของเรามีลักษณะดังนี้:


ฟังก์ชั่น do_alarm () {
// กำหนดเวลารอเป็นวินาที
wait_secs = 52; // สำหรับตอนนี้แค่กำหนดมัน
// รอเวลาที่จะตื่น & ปลุกเสียง
setTimeout (sound_alarm (), (wait_secs * 1,000))
}


มันใช้งานได้ดี แต่มันก็ยากที่จะบอกเพราะไม่มีอะไรเปลี่ยนแปลงหลังจากที่คุณกดปุ่มจนกว่าจะหมดเวลา อย่างไรก็ตาม DOM สามารถช่วยเราได้เช่นกัน ฉันเพิ่ม 2 บรรทัดต่อไปนี้ที่จุดเริ่มต้นของ do_alarm () ฟังก์ชั่น:


// ทำเครื่องหมายเตือนตามที่ตั้งไว้
document.getElementById ( "alarm_button"). คนพิการ = true
document.getElementById ("alarm_button"). value = "ชุดสัญญาณเตือน"


สิ่งนี้จะเปลี่ยนปุ่มที่เราผลักเพื่อตั้งค่าการเตือนเป็น "การตั้งค่าการเตือน" และปิดการใช้งาน หากเราต้องการที่จะสามารถใช้การเตือนอีกครั้งเราจะต้องเปลี่ยนปุ่มกลับสู่สถานะเดิม ฉันเพิ่มสิ่งนี้ในฟังก์ชั่น sound_alarm () คุณสามารถดูรหัสทั้งหมดและลองตัวอย่างการใช้งานได้ที่นี่