Zprávy  |  Hardware |  PDA |  MP3 |  Design |  Windows 98 |  Windows NT/2000 |  Vývoj |  Soubory |  Poradna |  Slovník Živě si čte 179 lidí  
 Hledání:
  
 Pokročilé  Máte problém?
Živě o počítačích a Internetu
centrum.cz



Vývoj
Apache a IIS
ASP a skripty
HTML
Průvodci
Doporučené weby

English English

Živě
Články za týden
Nové příspěvky
Nejčtenější články
Ankety
Autoři
Reklama na Živě
Kontakt na redakci
Hledáme autory!
Volná místa v IT

Nakupujte živě
FrontPage 2000 - Vytvoření a správa webu
Vladimír Plecháč, GCOMP
Úplný popis možností FrontPage 2000 a nikoli rozdílová učebnice. Více jak 100 návodů a postupů pro řešení běžných operací při přípravě webu. Vysvětlení nových technologií na praktických příkladech. Novinky verze: ...

220,00 Kč
Automatická obnova stránky jen po změně dat
Tomáš Holčík ASP a skripty - 23. 3. 2000 0:00

Určitě znáte automatické obnovování www stránky po určitém počtu sekund, jak ale zajistit, aby stránka neustále neblikala opakovaným načítáním, ale přesto se dokázala obnovit s aktuálními daty?

Asi není třeba nějak zvlášť představovat tag Meta, který mimo jiné slouží i k obnovování stránky:

<META http-equiv="refresh" content="5;url=/stranka.asp">

v tomto příkladu se po pěti sekundách přesměruje aktuální stránka na soubor /stranka.asp. Bez uvedení ;URL=... se obnoví aktuální stránka.

Často je tento tag používán u stránek, které musí být neustále aktuální. Není ale pro uživatele příliš pohodlné, když se stránka příliš často obnovuje i se starými daty. Jasným příkladem jsou například různé chaty, které se průběžně aktualizují a obnovují celou stránku, i když nebyl přidán žádný příspěvek.

Naštěstí kombinací HTML tagů a ASP lze docílit toho, že se celá stránka bude aktualizovat, až když to bude skutečně nutné.

Pro realizaci využijeme malý IFRAME na stránce (sbohem Navigatore), který pravidelně kontroluje, co se s daty děje, a v případě, že jsou k dispozici novější data, aktualizuje celou stránku.

Do stránky, kterou nabízíme uživateli jako pohled na data, je nutné přidat dvě věci. Na začátku si musíme definovat pomocnou proměnnou, která bude obsahovat čas otevření stránky, stačí tedy přidat do úvodního kódu stránky například

<% TimeStamp=now() %>

Potom do samotného HTML kódu stránky (řekněme, že se bude jmenovat showdata.asp) dáme tento neviditelný IFRAME obsahující volání kontroly dat:

<IFRAME align=right scrolling=no frameborder=0 width=1 height=1 src=/checkdata.asp?TimeStamp="<%= replace(TimeStamp," ","%20") %>"></iframe>

Ta náhrada mezery za %20 je tam kvůli předávání parametrů přes URL. Do parametru SRC můžeme přidat jakékoli další parametry, které jsou nutné pro korektní identifikaci stránky s daty.

Tam, kde dochází na našem webu k nějaké změně dat, která by si měla vynutit obnovení stránky, přidáme definici času poslední změny:

<% LastChange=now() %>

Pokud se data mění nezávisle na webové aplikaci (změnou dat v databázi jiným způsobem), bude nutné zabudovat do souboru checkdata.asp kontrolu databáze, to ovšem může zvýšit zátěž na webový (či SQL server) server.

Co bude obsahem souboru checkdata.asp? Tady to je:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Refresh" content="10">
<title>Untitled</title>
</head>
<body leftmargin=0 topmargin=0 scroll=no>
<% If Application("LastChange")>cDate(request("TimeStamp")) then %>
<script>
window.frames.parent.location="/showdata.asp";
</script>
<% End If %>
</body>
</html>
Co to dělá, je myslím po krátkém prozkoumání jasné. Každých deset sekund se tato stránka bude automaticky kontrolovat, a pokud skutečně došlo ke změně dat, vynutí si obnovení stránky ukazující data (ta je pro tento IFRAME nadřazeným rámcem).

Prakticky to máme vyzkoušeno v našem interním chatu, který si vyvíjíme. V klidu máme zobrazenou stránku s příspěvky, která vůbec nebliká, pokud ale někdo přidá příspěvek, celá stránka se automaticky obnoví. Veřejnému nasazení brání omezení na Internet Explorer, nicméně řada intranetových aplikací i se seriózním využitím může jistě něco podobného s úspěchem využít a není nutné brát ohledy na Navigator.

Související články:

Zajímá-li vás bližší pohled na tento článek, podívejte se na něj v souvislostech.


 Diskusní fórum čtenářů (8 zpráv)
[Nový příspěvek][Vypsat vše]
Pošli článek
Tiskni článek
Přidej názor
Textová inzerce
Pauza: čtěte rozhovor s Robertem Zárubou.
Aukce: zcela nový způsob přihazování.
Poslední minuta: už víte kam pojedete na dovolenou?
Vltava: sleva na vše minimálně 20 %!
Istore.cz: Nejlevnější spotřební materiál pro kopírky, tiskárny.
Aktuální články
Slovník
Není vám jasný nějaký pojem? Zeptejte se slovníku Živě:

Copyright 2000 Computer Press, realizační tým