Výcvikový nástroj pre počujúcich psov - setTimeout ()
V predchádzajúcom článku som začal iteratívny vývoj malého programu JavaScript, ktorý má pomôcť pri výcviku psa robiť zvukové výstrahy. Program, ktorý si môžete pozrieť tu, obsahuje doteraz nastavené tlačidlo alarmu, ktoré po stlačení zobrazí varovanie, že alarm sa vypol (hoci zvukový alarm ešte nie je nakonfigurovaný.) Ako ďalší krok sme budú skutočne nastavovať čakanie medzi stlačením tlačidla „nastaviť budík“ a spustením budíka, ako je.

JavaScript a Object Object Model (DOM), majú veľa obsluhy udalostí, aby čakali, až sa niečo stane (t.j. po kliknutí, onMouseOver, ...); v tomto prípade však chceme počkať, kým uplynie určitý čas, DOM poskytuje spôsob, ako to urobiť setTimeout (). setTimeout () vyžaduje na spustenie dva argumenty, časť kódu alebo funkciu a čas na spustenie v milisekundách. set_timeout () môže tiež zvoliť voliteľnú tretiu možnosť označujúcu použitý skriptovací jazyk - JavaScript, JScript alebo VBScript (toto je súčasť DOM, nie JavaScript, pamätajte.)

Náš nový kód vyzerá takto:


function do_alarm () {
// určiť čas čakania v sekundách
wait_secs = 52; // zatiaľ to definujte
// počkajte, kým vyprší čas a zvukový alarm
setTimeout (sound_alarm (), (wait_secs * 1000))
}


Funguje to skvele, ale je ťažké povedať, pretože po stlačení tlačidla sa nič nezmení, kým neuplynie čas. DOM nám s tým však tiež môže pomôcť. Pridal som nasledujúce 2 riadky na začiatok do_alarm () funkcie:


// označí alarm ako nastavený
document.getElementById ( "alarm_button"). vypnutá = true
document.getElementById ("alarm_button"). value = "Alarm Set"


Týmto zmeníte tlačidlo, ktoré sme stlačili, aby sme nastavili alarm tak, že povie „Alarm Set“ a zakáže ho. Ak chceme, aby bol budík schopný znova použiť, musíme prepnúť tlačidlo späť do pôvodného stavu. Pridal som to do funkcie sound_alarm (). Tu si môžete zobraziť celý kód a vyskúšať si príklad z práce.