Hearing Dog Training Tool - setTimeout ()
I en tidligere artikel startede jeg den iterative udvikling af et lille JavaScript-program for at hjælpe med at træne en hund til at udføre lydalarmer. Indtil videre inkluderer programmet, som du kan se her, en indstillet alarmknap, der, når den trykkes, dukker op en alarm om, at alarmen er gået (selvom den hørbare alarm ikke er konfigureret endnu.) Som det næste trin, vi vil faktisk indstille ventetiden mellem at trykke på knappen "indstille alarm" og alarmen, som den er, slukke.

JavaScript og Document Object Model (DOM) har en masse hændelsesudviklere til at vente på, at der sker noget (dvs. onClick, onMouseOver, ...); Men i dette tilfælde ønsker vi at vente på, at der går en tid, DOM tilvejebringer en metode til også at gøre dette setTimeout (). setTimeout () kræver to argumenter, et stykke kode eller en funktion, der skal køres, og tiden til at vente i millisekunder, før den køres. set_timeout () kan også tage en valgfri tredje mulighed, der angiver det anvendte scriptingsprog - JavaScript, JScript eller VBScript (dette er en del af DOM, ikke JavaScript, husk.)

Vores nye kode ser sådan ud:


funktion do_alarm () {
// bestemme tidspunktet for at vente i sekunder
wait_secs = 52; // For nu skal du bare definere det
// vent på tid til at være op og lydalarm
setTimeout (sound_alarm (), (wait_secs * 1000))
}


Dette fungerer godt, men det er svært at se, fordi intet ændrer sig, når du har trykket på knappen, indtil tiden er inde. Dog kan DOM også hjælpe os med dette. Jeg føjede de følgende 2 linjer til begyndelsen af do_alarm () fungere:


// mark alarm som indstillet
document.getElementById ( "alarm_button"). deaktiveret = true
document.getElementById ("alarm_button"). value = "Alarm Set"


Dette ændrer knappen, vi tryk for at indstille alarmen til at sige "Alarm Set" og deaktiverer den. Hvis vi vil være i stand til at bruge alarmen igen, bliver vi nødt til at ændre knappen tilbage til sin oprindelige tilstand. Jeg føjede dette til funktionen sound_alarm (). Du kan se alle koden og prøve et fungerende eksempel her.


Video Instruktioner: How to Stop Your Puppy From Biting (April 2024).