Công cụ huấn luyện chó nghe - setTimeout ()
Trong một bài viết trước, tôi đã bắt đầu phát triển lặp lại một chương trình JavaScript nhỏ để hỗ trợ huấn luyện một chú chó làm cảnh báo âm thanh. Cho đến nay, chương trình mà bạn có thể xem ở đây, bao gồm một nút báo thức được đặt, khi được nhấn, sẽ bật lên một cảnh báo cho biết rằng báo thức đã tắt (mặc dù cảnh báo âm thanh chưa được định cấu hình.) Là bước tiếp theo, chúng tôi sẽ thực sự đặt sự chờ đợi giữa việc nhấn nút "đặt báo thức" và báo thức, chẳng hạn như, sẽ tắt.

JavaScript và Mô hình đối tượng tài liệu (DOM), có một nhóm các trình xử lý sự kiện để chờ điều gì đó xảy ra (ví dụ: trong một cái nhấp chuột, onMouseOver, ...); tuy nhiên trong trường hợp này, chúng tôi muốn đợi một khoảng thời gian trôi qua, DOM cũng cung cấp một phương thức để thực hiện điều này setTimeout (). setTimeout () yêu cầu hai đối số, một đoạn mã hoặc hàm để chạy và thời gian chờ tính bằng mili giây trước khi chạy nó. set_timeout () cũng có thể có một tùy chọn thứ ba tùy chọn chỉ định ngôn ngữ kịch bản được sử dụng - JavaScript, JScript hoặc VBScript (đây là một phần của DOM, không phải JavaScript, hãy nhớ.)

Mã mới của chúng tôi trông như sau:


hàm do_alarm () {
// xác định thời gian chờ trong vài giây
Wait_secs = 52; // bây giờ, chỉ cần xác định nó
// chờ thời gian để lên & báo động âm thanh
setTimeout (sound_alarm (), (Wait_secs * 1000))
}


Điều này hoạt động rất tốt, nhưng thật khó để nói, vì không có gì thay đổi sau khi bạn nhấn nút cho đến khi thời gian kết thúc. Tuy nhiên, DOM cũng có thể giúp chúng tôi với điều này. Tôi đã thêm 2 dòng sau vào đầu do_alarm () chức năng:


// đánh dấu cảnh báo là đã đặt
document.getEuityById ("alarm_button"). tật = true
document.getEuityById ("alarm_button"). value = "Bộ báo thức"


Thao tác này sẽ thay đổi nút mà chúng tôi đã ấn để đặt báo thức thành "Bộ báo thức" và tắt nó đi. Nếu chúng tôi muốn có thể sử dụng lại báo thức, chúng tôi sẽ phải thay đổi nút trở lại trạng thái ban đầu. Tôi đã thêm cái này vào hàm sound_alarm (). Bạn có thể xem tất cả các mã và thử một ví dụ làm việc ở đây.