Problémy rámů

Ani by mne moc nepřekvapilo, jestli vám teď rámy připadají jako docela šikovná věc. Zvláště když chcete ke stránkám jednoduše přidat navigační panel s odkazy na jednotlivé stránky. Před pár lety proto bylo používání rámů poměrně moderní. Použití rámů však přináší několik problémů, které jsou většinou závažnější než výhody.

Prvním problémem je delší doba načítání stránky. Pokud se stránka skládá ze tří rámů (asi nejčastější případ), musí se na klienta přenést postupně čtyři objekty – nejprve stránka s definicí rozložení rámů a pak stránky pro jednotlivé rámy. Doba než se zobrazí celá stránka je tak zvláště na pomalejších linkách mnohem delší než u klasické stránky.

Mnohem větší problém je však nemožnost vytvoření odkazu nebo záložky na rámovou stránku. Odkaz v HTML vždy ukazuje pomocí URL na jednu stránku. V případě rámů se jedná o stránku, která pomocí elementu frameset definuje rozložení rámů na stránce. V definici rámů je však pevně dáno, které stránky se mají do jednotlivých rámů načíst. Odkaz nebo záložka proto vždy ukazuje na počáteční rozložení rámů. Nelze vytvořit odkaz na rozložení, kde by v některém z rámů byla stránka, na kterou jsme se postupně proklikali.

Když stránky s rámy vytváříme sami a chceme na ně vytvářet odkazy, jsou dvě možnosti, jak to obejít. Jednak můžeme pro každou možnou kombinaci stránek vytvořit vlastní stránku s definicí rozložení rámů. U všech odkazů pak použijeme target="_top". Tento přístup má však dvě velké nevýhody – přenáší se mnohem více dat a musíme vytvářet mnoho stránek s rozložením rámů (to lze obejít skriptem na straně serveru).

Druhý přístup k řešení počítá s tím, že do každé stránky vložíme javascriptový kód, který se postará o vytvoření stránky se správným rozložením rámů.

Sečteno a podtrženo – rámům se radši vyhněte.

Tento dokument je určen výhradně pro osobní potřebu seznámení se s jazykem HTML a tvorbou webových stránek. Jakékoliv jiné použití, včetně dalšího šíření, pořizování kopií, použití při školeních a výuce apod. je výslovně zakázáno a bude považováno za porušení autorských práv.


Copyright © 1997–2014 Jiří Kosek
blog comments powered by Disqus