. Právě je .

Proč je čas nepřesný?

Dost pravděpodobně jsi si všimnul(a), že čas, který se ukazuje na těchto sránkách, není přesný. Je to dáno jednoduchým důvodem - scriptem. O jeho ukazování se stará JavaScript - jinak to ani nejde, pokud ho chcete mít dynamický. JavaScript je scriptovací jazyk a script v něm napsaný se vykonává v počítači. V praxi to znamená, že při načtení sránky server pošle počítači nebo jakémukoli jinému zařízení, které si sránku prohlíží, samotný script, který si potom prohlížeč zpracuje. Dá se jím také jednoduše přetížit nebo zničit počítač, takže se jeho vykonávání dá v prohlížečích vypnout.

Přejděme k samotnému důvodu, proč jsi na tuto sránku pravděpodobně šel/a. Zde je samotný zdrojový kód scriptu, který dále objasním:

function naplnCas (){
var cas = new Date();
hodiny = cas.getHours();
minuty = cas.getMinutes();
sekundy = cas.getSeconds();
tyden = new Array("neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota");
mesice = new Array("ledna", "února", "března", "dubna", "května", "června", "července", "srpna", "září", "října", "listopadu", "prosince");
den = cas.getDay();
mesic = cas.getMonth();
if(document.all) rok = cas.getYear() + 1990;
else rok = cas.getYear() + 1900;
if(minuty>9){
if(sekundy>9) aktualniCas = tyden[den] + " " + cas.getDate() + ". " + mesice[mesic] + " " + rok + " " + hodiny + ":" + minuty + ":" + sekundy;
else aktualniCas = tyden[den] + " " + cas.getDate() + ". " + mesice[mesic] + " " + rok + " " + hodiny + ":" + minuty + ":0" + sekundy;
}
else {
if(sekundy>9) aktualniCas = tyden[den] + " " + cas.getDate() + ". " + mesice[mesic] + " " + rok + " " + hodiny + ":0" + minuty + ":" + sekundy;
else aktualniCas = tyden[den] + " " + cas.getDate() + ". " + mesice[mesic] + " " + rok + " " + hodiny + ":0" + minuty + ":0" + sekundy;
}
window.document.getElementById("cas").innerHTML = aktualniCas;
}

naplnCas();
window.setInterval("naplnCas()", 1000);

Tento script mám ze sránky www.jakpsatweb.cz. Modře jsem zvýraznil začátky jednotlivých řádků, ať se v tom dá aspoň trochu orientovat. Hned na začátku si udělám funkci, kterou v tomto případě pojmenuji třeba "naplnCas()". V ní deklaruji proměnnou "cas", která bude obsahovat aktuální čas (funkce "new Date()"), který si ale vezme z počítače. V dalších třech řádcích si pouze filtruji informace z této proměnné. Protože chci, aby se mi zobrazovaly i názvy dnů a měsíců, musím si je nastavit, viz další dva řádky. Poté další filtrování informací a nastavování roku (to kvůli Explroráži, který roky počítá jinak než ostatní prohlížeče). Poté je potřeba nastavit správné zobrazování nul a deklarování proměnné aktualniCas, o to se stará těch několik podmínek. Nápis "Právě je 4:7:1" by vypadal divně. Ještě řeknu, ať se v tagu (který je v HTML kódu) s ID "cas" zobrazí proměnná "aktualniCas". Zde konečně ukončím funkci. Napíšu, ať se vykonává a ať se vykonává s intervalem 1000 milisekund (1 sekunda - interval, za který se obnovuje čas).

Doufám, že jsem to vysvětlil dostatečně jasně. Myslím, že tomu člověk bez základní znalosti JavaSriptu neporozumí, ale co kdyby.