Automatická obnova stránky jen po změně dat

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?
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.

Diskuze (8) Další článek: Týden s Internetem v Moravské Třebové

Témata článku: Software, Programování, Internet Explorer, Obnova, Meta, Jasný příklad, Automatic, Neviditelný iFrame, Str, Automatické obnovování, Jasný bod, Stráň, Refresh


Určitě si přečtěte

Google vymyslel technologii superpřesného GPS. Už ji podporuje Pixel 5 a dorazí i na ostatní telefony

Google vymyslel technologii superpřesného GPS. Už ji podporuje Pixel 5 a dorazí i na ostatní telefony

** Kvalita GPS ve městech občas stojí za starou bačkoru ** Mohou za to odrazy signálu od okolních budov ** Google má jejich 3D model, a tak spolupracuje s výrobci GPS čipů

Jakub Čížek | 40

Jakub Čížek
NavigaceTechnologieGoogle
Microsoft Defender je jeden z nejlepších antivirových programů, tvrdí výsledky AV-TESTu
Karel Kilián
Windows DefenderAntivirusWindows 10
Messenger a Instagram přicházejí v Evropě o funkce. Kvůli nové směrnici o soukromí
Vladislav Kluska
EvropaInstagramFacebook Messenger
Jak se šíří Covid v Česku: Čerstvá data, semafor PES, mapy okresů a obcí. Každý den aktualizované grafy

Jak se šíří Covid v Česku: Čerstvá data, semafor PES, mapy okresů a obcí. Každý den aktualizované grafy

** Vývoj COVID-19 v Česku: nakažení, úmrtí, testovaní, hospitalizovaní ** Mapa podle okresů, přehled podle věku, situace v Evropě i ve světě ** Každý den aktualizované grafy a mapy

Marek Lutonský | 172

Marek Lutonský
COVID-19Koronavirus
10 míst na mapách Googlu, která nesmíte vidět. Nahradily je čtverečky

10 míst na mapách Googlu, která nesmíte vidět. Nahradily je čtverečky

** Deset míst, které nesmíte vidět ve webových mapách ** Jsou to letiště, základny i elektrárny ** Nejvíce míst tají Francie

Jakub Čížek | 21

Jakub Čížek
Mapy GoogleMapy

Aktuální číslo časopisu Computer

Jak prodloužit výdrž notebooku

Velké testy: gamepady a inkoustové tiskárny

Důkladný test Sony Playstation 5