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
-
Jak zvýšit CTR vašeho e-mail marketingu
9. září 2024 -
Windows App: Pracujte odkudkoliv, kdykoliv
3. listopadu 2024 -
AI na dosah ruky: Jak je to s AI v osobních zařízeních?
22. ledna 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024