Dynamika s několika ale...
Použijeme-li pouze XHTML a kaskádové styly (CSS), můžeme vytvořit hezky strukturované i graficky dobře zformátované stránky, které jsou nicméně až na několik vyjímek v podstatě nehybné. Pomocí programovacího jazyka JavaScript do těchto statických stránek můžeme přinést dynamiku. Můžeme například poměrně snadno docílit toho, aby se nám při kliknutí na některý prvek na stránce zobrazila v jiné části stránky nápověda bez nutnosti přistupovat k serveru a načítat novou stránku s kódem tuto nápovědu obsahujícím. Pomocí JavaScriptu můžeme ovšem na stránkách provádět i poměrně složité operace včetně generování vlastního XHTML kódu. Skripty jsou spouštěny na počítači uživatele, a proto (kromě nutnosti přenosu zdrojových dat) nezatěžují server. Na stranu druhou jsou závislé na rychlosti uživatelova počítače.
Použití této technologie v sobě ovšem nese určitá úskalí a tím hlavním je kompatibilita (či spíše její absence) mezi různými prohlížeči, na jejichž interpretaci je závislé, co daný skript provede. Jednotlivé prohlížeče na stejné příkazy, na stejný JavaScript program nereagují vždy stejně a je poměrně obtížné naprogramovat složitější skript tak, aby se bez problémů zobrazoval ve všech moderních prohlížečích stejně. Zhola nemožné je potom napsat skript takový, který by fungoval na všech platformách - kdyby kvůli ničemu jinému, tak proto že uživatel může ve svém prohlížeči, byť by byl sebemodernější, provádění skriptů zakázat. Obzvláště z bezpečnostních důvodů je Javascript na mnohých počítačích, byť jej principiálně podporují, vypnutý.
Skripty ano - ovšem s výhradou
To ovšem neznamená, že je potřeba na dynamické stránky rezignovat. Stránky by na JavaScriptu ovšem neměly být závislé - informace musí být přístupné i v případě, že uživatel spouštění skriptů nepovolí. Vždy jde napsat skript tak, aby se korektně zobrazoval ve většině moderních prohlížečů. Pro ty prohlížeče, které to neumí (nebo to mají zakázáno) ovšem musí existovat alternativa. Je bezesporu v pořádku, pokud je na stránce skript, který zajistí, že po najetí myši nad nějakou nabídku, se vedle kurzoru zobrazí nabídky rozšiřující. Uživatel by ovšem měl vždy mít možnost se k těmto nabídkám dostat i v případě, že jeho prohlížeč JavaScript neumí, například na zvláštní stránce, na kterou vede jasná navigace.
Obecně se dá říct, že dynamické prvky na stránce by neměly nést žádnou informační hodnotu, k níž není alternativa. Je-li dynamických prvků použito s rozvahou ke zvýšení uživatelského komfortu, pak proti nim zajisté nelze nic namítat.
A takto to vypadá v praxi...
Následující ukázka rozšiřuje náš ukázkový dokument o skript, který zajistí, že po kliknutí na text "změn ji" se náhodně vygeneruje barva jiná a ta se nadpisu přidělí. Můžete se podívat, jak bude ukázka vypadat ve Vašem prohlížeči.
function rnd255() {
return Math.floor(Math.random()*256)
}
function testdom() {
if (document.getElementById)
document.getElementById("prepni").className="show"
}
function zmenBarvu() {
if (document.getElementById)
document.getElementById("nadpis").style.color =
"rgb("+rnd255()+","+rnd255()+","+rnd255()+")"
}
Ukázka JavaScriptu
...
<body onload="testdom()">
<h1 id="nadpis">JavaScript - dynamické stránky</h1>
...
<p id="prepni" class="hide">Nelíbí se mi barva nadpisu.
<a href="javascript:zmenBarvu()">Změň ji</a>!</p>
...
Úpravy XHTML dokumentu
(funkce je zobrazena pouze v případě, že prohlížeč podporuje Javascript)
