Ukazatel průběhu načtení stránky v JavaScriptu
Trpělivost návštěvníků našich WWW stránek není obvykle nekonečná. Při otevírání delších stránek, zejména, jsou-li zarámovány v tabulce, se nám může hodit následující jednoduchý skript, který na počátku stahování stránky zobrazí jednoduché „popup“ okno s animovaným ukazatelem průběhu, a po natažení stránky jej automaticky zavře.
Funkčnost skriptu byste měli vidět při natahování této stránky (pokud vám „popup“ okénko uniklo, zkuste reload). Přibližně ve středu obrazovky se zobrazilo malé okénko s nápisem „Probíhá načítání okna“, v němž byl během načítání animován červený ukazatel, po ukončení načítání stránky se okno automaticky zavřelo.
Skript, který uvedené chování zajišťuje, je téměř celý uveden v hlavičce stránky. Nejprve zadefinujeme dvě pomocné proměnné. První z nich, timeout, je konstanta udávající náš odhad, jak dlouho (v sekundách) se bude stránka načítat (tato hodnota samozřejmě nebude nikdy přesná, slouží k přípravě ukazatele průběhu a její konkrétní hodnotu pro tu kterou stránku je nejlepší vyzkoušet). Druhá proměnná, elapsed, udává počet vteřin, které již uběhly od počátku načítání stránky.
|
Následuje samotné otevření popup okna. Okno můžeme otevřít buď s odkazem na konkrétní URL, udávající jeho obsah, nebo můžeme obsah okna zapsat pomocí JavaScriptových funkcí, tak jak je tomu zde. V našem případě jsme pro vytvoření ukazatele průběhu použili jednořádkovou tabulku, kdy každá buňka tabulky obsahuje nejprve obrázek nevyplněného políčka ukazatele (soubor "blank.gif").
|
Následuje definice dvou animačních funkcí. První z nich, nazvaná UpdateAlerter(), zabezpečuje postupnou záměnu políček ukazatele v popup okně z prázdných na vyplněná (nastavuje vlastnost src prvku image):
|
Druhá z funkcí, CloseAlerter, má za úkol zavřít popup okno:
|
Poznámka: Podmínka, do níž jsou zarámovány obě funkce, ošetřuje skript proti chybě, pokud je popup okno zásahem uživatele nebo vlastním skriptem zavřeno.
Nyní musíme zabezpečit správné volání obou funkcí. Animační funkci UpdateAlerter budeme volat pomocí časovače opakovaně každou vteřinu. Pro funkci CloseAlerter nastavíme jedno volání po uplynutí intervalu timeout - toto nastavení zabezpečí, že pokud z nějakého důvodu zhavaruje načtení celé stránky, nezůstane popup okno "viset" nad hlavním oknem prohlížeče:
|
Nakonec musíme zajistit zavření okna (tedy volání funkce CloseAlerter) po natažení celé stránky - tedy normální chování skriptu - výše uvedené volání pomocí setTimeout slouží pouze k nouzovému uzavření popup okna. Zabezpečíme to následujícím řádkem skriptu, který umístíme buď na konci stránky (např. někam před závěrečné </BODY>), nebo, což je lepší, do handleru události onLoad tagu BODY:
|
To je k ukazateli průběhu načtení stránky pro tentokrát všechno. Jako obvykle, skript skýtá celou řadu možností vylepšení, jmenujme například centrování popup okna, nejrůznější vylepšení grafická, přizpůsobení rychlosti animace ukazatele uplynulému času (tak jako to dělá např. Internet Explorer, kdy se, pokud natažení stránky trvá příliš dlouho, běh ukazatele výrazně zpomalí), atd.
Přeji vám příjemný den.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Rychlost serveru: Klíč k lepšímu umístění ve vyhledávačích
7. června 2024 -
Členská sekce: 4 důvody proč ji mít na svém webu
12. března 2024 -
AI v programování: Jak používat GitHub Copilot (část 1)
12. února 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024