Orodje za usposabljanje slušnih psov - setTimeout ()
V prejšnjem članku sem začel iterativni razvoj majhnega programa JavaScript za pomoč pri usposabljanju psa za zvočno opozorilo. Do zdaj program, ki si ga lahko ogledate tukaj, vključuje nastavljen gumb alarma, ki ob pritisku sproži opozorilo, da se je alarm ugasnil (čeprav zvočni alarm še ni konfiguriran.) Naslednji korak bomo uporabili dejansko bomo nastavili čakanje med pritiskom gumba "nastavi alarm" in alarmom, kakršen je, se izključi.

JavaScript in dokumentni objektni model (DOM) imata vrsto obdelovalcev dogodkov, ki čakajo, da se nekaj zgodi (tj. onClick, onMouseOver, ...); vendar v tem primeru želimo počakati toliko časa, DOM zagotovi način, kako to tudi storiti setTimeout (). setTimeout () zahteva dva argumenta, delček kode ali funkcijo, ki jo želite zagnati, in čas za čakanje v milisekundah, preden ga zaženete. set_timeout () lahko uporabite tudi tretjo možnost, ki označuje uporabljeni skriptni jezik - JavaScript, JScript ali VBScript (to je del DOM-a, ne JavaScript, ne pozabite.)

Naša nova koda izgleda tako:


funkcija do_alarm () {
// določite čas čakanja v sekundah
wait_secs = 52; // zaenkrat samo definirajte
// počakajte, da se vklopi & zvočni alarm
setTimeout (sound_alarm (), (wait_secs * 1000))
}


To deluje odlično, vendar je težko povedati, saj se po pritisku na gumb nič ne spremeni, dokler se čas ne izteče. Vendar nam lahko pri tem pomaga tudi DOM. Naslednji 2 vrstici sem dodal na začetek do_alarm () funkcija:


// označi alarm kot nastavljen
document.getElementById ("alarm_button") onemogočen = res
document.getElementById ("alarm_button"). vrednost = "Alarm Set"


To spremeni gumb, ki smo ga pritisnili, da nastavimo alarm tako, da reče "Alarm Set" in ga onemogoči. Če želimo ponovno uporabiti alarm, bomo morali gumb spremeniti v prvotno stanje. To sem dodal funkciji sound_alarm (). Tu si lahko ogledate vso kodo in preizkusite delovni primer.