╚asovßnφ

Metody setTimeout(), clearTimeout(), setInterval() a clearInterval() se pou╛φvajφ na Φasovßnφ udßlostφ. 

Jsou to metody objektu window. 

Proto╛e setInterval() a clearInterval() jsou dostupnΘ a╛ od Φtvrt²ch verzφ prohlφ╛eΦ∙, v praxi se nedoporuΦujφ a nahrazujφ se rekurzφ timeout∙.

Syntaxe:

prom∞nnß = setTimeout("akce", milisekundy); // naΦasuje akci 
clearTimeout(prom∞nnß); // zru╣φ naΦasovßnφ 
prom∞nnß2 = setInteval("akce", milisekundy); // naΦasuje opakovanou akci 
clearInterval(prom∞nnß); // zru╣φ opakovanΘ naΦasovßnφ 

Akce je libovoln² p°φkaz JavaScriptu. Musφ b²t v uvozovkßch, jinak se provede hned. Ru╣enφ naΦasovßnφ se moc nepou╛φvß, ale n∞kdy je pot°eba.

Spu╣t∞nφ akce po urΦitΘm Φase

setTimeout("window.close()", 12000);

Po dvanßcti sekundßch (tj. 12000 milisekund) se zav°e aktivnφ okno (window.close() ). 

V praxi se Φast∞ji do Φasovßnφ zapisuje odkaz na funkci ne╛ vlastnφ k≤d. A sekundy se lΘpe zadßvajφ jako souΦin. Nap°φklad po p∞ti minutßch spustφme funkci akce():

setTimeout("akce()", 5 * 60 * 1000);

Zru╣enφ naΦasovanΘ udßlosti

Aby ╣la naΦasovanß udßlost zru╣it, musφ se spou╣t∞t ulo╛enß do prom∞nnΘ, nap°. casovac. P°φklad ΦasovanΘ deaktivace okna ulo╛enΘ do prom∞nnΘ:

casovac = setTimeout(window.blur(), 12000);

Ru╣enφ naΦasovßnφ pak obvykle zaji╣╗uje n∞jakß udßlost. Nap°. kliknutφ na tlaΦφtko. Ru╣φcφ metoda clearInterval(p°ebφrß jako parametr tu prom∞nnou casovac).

<input type="button" value="Zru╣it Φasovßnφ"
onclick="clearTimeout(casovac)">

P°φklad Φasovßnφ a zru╣enφ Φasovßnφ.

Pozor, v nßvodech se Φasto prom∞nnß "casovac" zapisuje jako "id", tedy clearTimeout(id). To ale vede k chybßm, pokud je pozastavenφ intervalu vßzßno na udßlost n∞jakΘho prvku (t°eba input), proto╛e id je asi n∞jakΘ klφΦovΘ slovo pro prvky.

OpakovanΘ Φasovßnφ

Metoda setInterval("akce", Φas) opakuje akci poka╛dΘ, kdy╛ uplyne Φas. Vyu╛φvß se to zejmΘna p°i animacφch, ale i jinde. Nap°φklad chci, aby se okno aktivovalo do pop°edφ (focus() ) ka╛d²ch p∞t minut: 

window.setInterval("window.focus()", 5 * 60 * 1000);

Kdy╛ u╛ivatel pracuje s vφce okny nebo aplikacemi, bude se mu toto okno ka╛d²ch p∞t minut p°ipomφnat. P°φklad na opakovanΘ Φasovßnφ.

╚asovßnφ se ru╣φ metodou clearInterval(prom∞nnß), kterß funguje obdobn∞ jako clearTimeout(). 

OpakovanΘ Φasovßnφ rekurzφ

Proto╛e ve star╣φch verzφch (trojkov²ch) prohlφ╛eΦ∙ ne╣lape metoda setInterval(), obchßzelo se to rekurzφ. Metodou setTimeout("se volala funkce, kterß obsahovala volßnφ sebe samΘ", naΦasovanΘ o interval). Symbolick² zßpis:

function opakovana() {
// n∞co ud∞lß, proto se to Φasuje;
window.setTimeout("opakovana()", 1000); // volß sebe samu odlo╛enou o sekundu
}

Tento zßpis je je╣t∞ dost Φasto vid∞t a po pravd∞ °eΦeno jej vcelku doporuΦuji, proto╛e t°etφ verze prohlφ╛eΦ∙ ze sv∞ta je╣t∞ nezmizely (aΦkoli si to v╣ichni vroucn∞ p°ejeme).