Jak zakrýt načítání nové stránky

4. října 2002

V některých případech může načítání nové stránky trvat delší dobu. Pomocí VBScriptu můžeme v MSIE provést zobrazení zprávy tak, že uživatel stále zůstává na stránce s odkazem, kterým získá výsledek „pomalého“ skriptu. Zobrazí se mu jen upozornění o probíhající akci a do doby, než je nová stránka načtena a připravena k zobrazení, si může dále číst původní stránku.

Podívejte se na ukázku, kde je pro znázornění zpoždění zadáno vygenerování velké mapy s podrobným rozlišením. V principu jde o to vytvořit funkci (v našem případě proceduru), která nejprve načte stránku a teprve poté ji předá prohlížeči ke zviditelnění.

<html>
<head>
<title>Čekání na zpracování</title>
<script type=“text/vbscript“>
Sub PageWait()
Parent.Location.HREF=“pomaly_skript.php“
End Sub
</script>
</head>
<body>
<p>
Obsah stranky
<br />
<a href=“pomaly_skript.php“ onclick=“wait.style.display=“
PageWait()“>zpracovat údaje</a>
<div id=“wait“ style=“position:absolute; padding:6px; z-index:5; display:none; border:2px outset; background:menu; color:menutext; font-size: 70%; font-weight: bold;font-family: Verdana,Tahoma,Arial“>
Čekejte prosím, Váš požadavek se zpracovává…
</div>
</p>
</body>
</html>

Zdálo by se, že provedení řádku pro přesměrování ve VBScriptu prostě přesměruje prohlížeč. Ve skutečnosti však k přesměrování dojde až v okamžiku, kdy je stránka připravena k zobrazení, a to je přesně to, co potřebujeme.

Dále je vyřešeno provedení odkazu. Do parametru onclick je přidán povel ke zviditelnění zprávy pro uživatele a následné volání procedury pro přípravu nové stránky. Upozornění je provedeno jako skrytý (neviditelný) layer, který se zviditelní kliknutím na odkaz. Nastaven je z-index dostatečně do popředí, barvy jsou zadány jako tzv. systémové barvy, zpráva tedy bude mít stejné barvy, jako prostředí Windows uživatele.

Protože ostatní prohlížeče VBScript většinou (tj. bez speciálních pluginů) nepodporují, uvedený skript v nich nebude funkční, ovšem nezpůsobí ani chybu a aplikace zůstane plně funkční (Opera 6+, NN6+, Mozilla). Pokud se vám nelíbí vyskakovací layer, je možné samozřejmě vymyslet jiné efekty – pomocí filtrů stránku zobrazit černobíle, nepoužívat absolutní pozicování, ale zviditelnit část běžného textu, nebo třeba vypsat zprávu jen do adresního řádku prohlížeče.

Související články

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Předchozí článek jaroska.cz
Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *