Hlavní nabídka: |
Základy
Reference
Příklady
|
|
|
window.clearTimeout()
Další výhodou JS oproti HTML je možnost ukončení již probíhajícího procesu. Dnes si ukážeme jak na souhrnném příkladu.
V dnešním příkladu si zopakujeme již naučené prvky JS. Zaměříme se na zobrazování aktuálního času ve stavovém řádku:
<HTML>
<HEAD>
<TITLE>window.clearTimeout</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
zapnute_hodinky=false;
function zapni_hodinky()
{
dnes=new Date();
with (dnes) {
hodina=getHours();
minuta=getMinutes();
sekunda=getSeconds();
}
cas=hodina;
cas+=((minuta<10) ? ":0" : ":")+minuta;
cas+=((sekunda<10) ? ":0" : ":")+sekunda;
window.status=cas;
casovac=window.setTimeout("zapni_hodinky()",1000);
zapnute_hodinky=true;
}
function vypni_hodinky()
{
if (zapnute_hodinky)
{
window.clearTimeout(casovac);
window.status+=" (zobrazování času bylo zmraženo)";
zapnute_hodinky=false;
}
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="button" onClick="zapni_hodinky();" VALUE="Zapni hodinky">
<INPUT TYPE="button" onClick="vypni_hodinky();" VALUE="Zmraž hodinky">
</FORM>
</BODY>
</HTML>
Pro výsledek klikněte ZDE.
Vysvětlení činnosti:
Tento příklad je opravdu náročný na pochopení, proto věnujte vysvětlení činnosti pozornost. Než začneme psát jednotlivé funkce, kterými budeme (ne)zobrazovat aktuální čas ve stavovém řádku, přiřadíme proměnné zapnute_hodinky hodnotu false. Tuto proměnnou budeme dále využívat k zapnutí a vypnutí hodinek. Na začátku ji přiřazujeme hodnotu false, abychom hodiny neměli při načtení stránky puštěné. Teď už se pustíme do jednotlivých funkcí. Začneme funkcí zapni hodinky(). V ní jsme přiřadili proměnné dnes jako hodnotu objekt Date(), s kterým budeme dále pracovat. Nejdříve přiřadíme funkcím pro získání časových údajů jejich proměnné ekvivalenty (odpovídající proměné). Další proměnné odvíjející se od proměnné cas nám budou sloužit k vypsání času. Proto musíme toto zobrazení takzvaně ošetřit a to tak, že pomocí podmínkových výrazů nastavíme, aby při čísle nižším než deset zobrazil JS před číslici :0, při 10 a vyšším pak jen :. Tak dostaneme vzhled klasických hodin. Poté pomocí příkazu window.status zadáme vypsání proměnné cas, která obsahuje aktuální čas. Problém je v tom, že by se čas pouze zobrazil, ale "nehýbal by se". Proto použijeme konstrukci window.setTimeout(kód,čas), s kterou jsme se seznámili v předchozím článku. Té jako kód přiřadíme funkci zapni_hodinky() a čas (doba, po které se script aktualizuje) 1000 milisekund, tj. jedna sekunda. Hodiny pak budou plynulé. Konstrukci window.setTimeout jsme přiřadili jako hodnotu proměnné casovac, tak jsme přiřadili ukazatel (sekvence v ()) i této proměnné a v dalším zpracování to již nemusíme vypisovat. Následně jako poslední parametr této funkce přiřadíme proměnné zapnute_hodinky=true. Druhou funkcí je vypni_hodinky(). Té jsme přiřadili podmínku if(zapnute_hodinky), to znamená, že po aktivaci se spustí jen v případě, jestli byla předtím byla proměnná zapnute_hodinky na hodnotě true. To znamená, jestli předtím byla aktivní funkce zapni_hodinky(), protože ta přiřadila proměnné zapnute_hodinky hodnotu true. Jestli je tedy tato podmínka splněna nastane "zmražení" konstrukce window.setTimeout. To provedeme konstrukcí window.clearTimeout. Jako ukazatel (sekvence v ()) již použijeme jen proměnnou casovac (viz výše). Do statového řádku pak dáme jen vypsat text informující o zmražení hodinek a proměnné zapnute_hodinky opět přiřadíme hodnotu false. Další kod je už jen zobrazení dvou tlačítek pro zapnutí jednotlivých funkcí pomocí ovladače událostí onClick.
06.03.2002 | Datum a čas | David Havlíček
|
|
Dnes je 15. 11. 2024 Svátek má Leopold | |
Bleskové aktuality: |
10.12.2002 Dlouho jsme tu neměli příklady, tak co kdybychom si dneska jeden dali?
07.12.2002 Poslední operáty, které si představíme, jsou speciální.
02.12.2002 Po delší pauze si představíme další operátory - řetězcové.
17.11.2002 Next operátory jsou přiřazovací.
10.11.2002 Jedněmi z posledních operátorů jsou porovnávací.
02.11.2002 Už jste slyšeli o logických operátorech? Pár jich taky je.
29.10.2002 Dalšími operátory jsou bitové.
26.10.2002 Dnes si představíme první z řady operátorů - aritmetické operátory.
24.10.2002 Další částí referencí jsou příkazy.
18.10.2002 Dnes se mrkneme na referenční přehled funkcí.
12.10.2002 Window je objekt, který má snad nejvíce metod a vlastností, tak se mu dnes podíváme na zoubek.
06.10.2002 Netradičně v neděli další objekt - string.
28.09.2002 Další sobota. Další objekt - screen.
21.09.2002 Hodně používáný je objekt navigator. Proto se na něj dneska zaměříme.
14.09.2002 Po týdenní pauze další referenční článek o objektu - tentokrát Math.
07.09.2002 Objekt location bude náš dnešní cíl.
04.09.2002 Na paškál si tentokrát vezmeme objekt history.
|
|
|