Klausos šuns dresūros įrankis - setTimeout ()
Ankstesniame straipsnyje pradėjau kartoti nedidelę „JavaScript“ programą, kuri padėtų mokyti šunį daryti garsinius įspėjimus. Kol kas į programą, kurią galite peržiūrėti čia, yra nustatytas aliarmo mygtukas, kuris paspaudus pasirodo įspėjamasis signalas, nurodantis, kad aliarmas išsijungė (nors garsinis aliarmas dar nėra sukonfigūruotas.) Kaip kitą žingsnį, mes ketinate iš tikrųjų nustatyti laukimą nuo mygtuko „nustatyti aliarmą“ paspaudimo iki aliarmo, tokio, koks jis yra, išsijungimo.

„JavaScript“ ir dokumento objekto modelį (DOM), turi krūva įvykių tvarkytojų, kad lauktų, kol kažkas įvyks (t. paspaudus, „onMouseOver“, ...); tačiau šiuo atveju norime palaukti, kol praeis nemažai laiko, DOM pateikia metodą, kaip tai padaryti setTimeout (). setTimeout () reikia dviejų argumentų, kodo ar funkcijos paleidimo ir laiko laukti milisekundėmis prieš jį paleidžiant. set_timeout () taip pat gali pasirinkti neprivalomą trečiąją parinktį, nurodančią naudojamą scenarijų kalbą - „JavaScript“, „JScript“ arba „VBScript“ (tai DOM dalis, o ne „JavaScript“, atsiminkite.)

Mūsų naujas kodas atrodo taip:


funkcija do_alarm () {
// nustatykite laukimo laiką sekundėmis
laukti_sek = 52; // kol kas tiesiog apibrėžkite tai
// laukti, kol laikas bus ir garso aliarmas
„setTimeout“ (garso signalas (), (laukimo sekos * 1000))
}


Tai puikiai veikia, tačiau sunku pasakyti, nes paspaudus mygtuką, kol laikas nepasibaigė, niekas nesikeičia. Tačiau DOM mums taip pat gali padėti tai padaryti. Aš pridėjau šias 2 eilutes prie do_alarm () funkcija:


// pažymėti aliarmą kaip nustatytą
document.getElementById („alarm_button“). išjungta = teisinga
document.getElementById ("alarm_button"). value = "Signalizacijos rinkinys"


Tai keičia mygtuką, kurį paspaudėme, kad žadintuvas pasakytų „Signalų rinkinys“, ir jį išjungia. Jei norime vėl naudoti signalą, turėsime pakeisti mygtuką į pradinę būseną. Aš pridėjau tai prie garso signalo () funkcijos. Čia galite peržiūrėti visą kodą ir išbandyti veikiantį pavyzdį.