Loading - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:



PHP

Loading

html_obecne

7. října 2002, 00.00 | Tento článek věnuji tématu, které tíží nejednoho administrátora webových stránek (často free–hostingových). Oním pojítkem
jednotlivých webů tohoto typu bývá pomalá odezva serverů a tedy zdlouhavé načítání a následné zobrazení stránky.

Tento článek věnuji tématu, které tíží nejednoho administrátora webových stránek (často free–hostingových). Oním pojítkem jednotlivých webů tohoto typu bývá pomalá odezva serverů a tedy zdlouhavé načítání a následné zobrazení stránky.

Současný design stránek je často založen na velmi složitých tabulkách. Bohužel tento fakt ještě zhoršuje situaci. Protože prohlížeč nezobrazí tabulku dokud neobdrží její ukončovací tag </TABLE>.

Obecně lze tento nešvar alespoň částečně řešit tím, že tato tabulka rozdělí na více identických tabulek (tj. stejné šířky a ostatní nastavení). Např. záhlaví je pravděpodobným kandidátem. Ovšem u velmi složitého webu nebo v jiných prohlížečích se vám následně může stát, že jednotlivé tabulky budou mít nesprávnou šířku a pozadí tedy nebude sedět :-(

Existuje však ještě jeden způsob, který sice nezobrazí stránku dříve než se načte konec stránky. Ale dokáže téměř okamžitě po přijmutí "prvního" paketu prohlížečem zobrazit informaci, že stránka se načítá. Což by podle mého měla být dostačující informace pro neznalého uživatele, že server běží, ale je jen pomalý. Kdo by to neznal, typicky výpisy databází.

<body>
<span style="position: absolute; left: 295; top: 25">
<img height="14" alt=" " src="images/dot.gif" width="170" id="sstatus" name="sstatus"></span>
<script type="text/javascript">
document.sstate.src = "images/loading.gif";
</script>
<!-- DIVIDE -->
...

Celé to je založené na JavaScriptu. Pokud ho z nějakého důvodu nebude prohlížeč podporovat, tak se pouze nezobrazí tento efekt. Stránka bude v podstatě jako by ho vůbec neobsahovala.

Na konec stránky pak již jen stačí vložit druhý skript, který vrátí obrázek zpět na průhledný.

...
<script type="text/javascript">
document.sstate.src = "images/dot.gif";
</script>
</body>
</html>

Ten kdo má svůj web postavený na templatech a bude to chtít implementovat, má během pár minut hotovo. A ten kdo je nemá, má další důvod, proč je mít :-)

Jak to funguje si můžete prohlédnout na mém serveru PAČR.

Závěrem bych jen dodal, že stejný způsob lze aplikovat po kliknutí submit tlačítka. Které mimo jiné provede změnu tohoto obrázku například na sending... či cokoliv co se vám zlíbí.

K submit tlačítkům bych ještě přidal jeden postřeh. Množství odesílaných formulářů je napojeno na databáze či cosi jiného. Obojí v podstatě potřebuje unikátní přístup (neopakovaný), který ovšem při pomalé odezvě nemůžete zajistit. Protože uživatel může stihnout kliknout vícekrát a tím odeslat více requestů. Výsledkem může být výpis chyby z databáze, že záznam již existuje.

Zde se řešení nachází v relativně jednoduchém skriptu opět založeném na JavaScriptu. Tlačítko stačí disablovat. Případně budete–li si přát, může se změnit i jeho hodnota např. na sending... apod.

<input type="submit" name="submit" id="submit" onclick="this.disabled=true;">

Tématické zařazení:

 » Rubriky  » PHP  

 » Rubriky  » JavaScript  

 » Rubriky  » Web  

 » Rubriky  » ASP  

 » Rubriky  » HTML  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: