Alat Pelatihan Anjing Hearing - setTimeout ()
Dalam artikel sebelumnya, saya memulai pengembangan iteratif dari program JavaScript kecil untuk membantu melatih seekor anjing untuk melakukan peringatan suara. Sejauh ini, program, yang dapat Anda lihat di sini, termasuk tombol set alarm yang, ketika ditekan, muncul peringatan yang menyatakan bahwa alarm sudah mati (meskipun alarm terdengar belum dikonfigurasi.) Sebagai langkah selanjutnya, kami akan benar-benar mengatur menunggu antara menekan tombol "set alarm" dan alarm, seperti itu, pergi.

JavaScript dan Document Object Model (DOM), memiliki banyak penangan acara untuk menunggu sesuatu terjadi (mis. onClick, onMouseOver, ...); namun dalam hal ini, kami ingin menunggu sejumlah waktu untuk berlalu, DOM menyediakan metode untuk melakukan ini juga setTimeout (). setTimeout () membutuhkan dua argumen, sepotong kode atau fungsi untuk dijalankan dan waktu untuk menunggu dalam milidetik sebelum menjalankannya. set_timeout () juga dapat mengambil opsi ketiga opsional yang menunjuk bahasa scripting yang digunakan - JavaScript, JScript, atau VBScript (ini adalah bagian dari DOM, bukan JavaScript, ingat.)

Kode baru kami terlihat seperti berikut:


function do_alarm () {
// tentukan waktu untuk menunggu dalam hitungan detik
wait_secs = 52; // untuk saat ini, tentukan saja
// tunggu waktu untuk menyala & alarm berbunyi
setTimeout (sound_alarm (), (wait_secs * 1000))
}


Ini bekerja dengan baik, tetapi sulit untuk mengatakannya, karena tidak ada yang berubah setelah Anda menekan tombol sampai waktunya habis. Namun, DOM dapat membantu kami dengan ini juga. Saya menambahkan 2 baris berikut ke awal do_alarm () fungsi:


// tandai alarm sebagaimana diatur
document.getElementById ("alarm_button"). disabled = true
document.getElementById ("alarm_button"). value = "Set Alarm"


Ini mengubah tombol yang kami tekan untuk mengatur alarm untuk mengatakan "Set Alarm" dan menonaktifkannya. Jika kita ingin dapat menggunakan alarm lagi, kita harus mengubah tombol kembali ke keadaan semula. Saya menambahkan ini ke fungsi sound_alarm (). Anda dapat melihat semua kode dan mencoba contoh yang berfungsi di sini.