Změna stylu: Standardní Dřevo Jaro Léto Léto2 Potápěč :-) Údolí stínů

Vytváření objektů

Viditelnost objektů

Proměnné a objekty v ASP aplikaci mohou mít být viditelné:

Viditelnost na úrovni stránky

Většina proměnných a objektů používaných v ASP aplikacích je viditelná pouze na úrovni stránky. To znamená, že se v průběhu zpracovávání ASP stránky vytvoří proměnná (nebo objekt) a při dokončení zpracovávání stránky je tato proměnná opět zrušena.

Viditelnost na úrovni session

Při obdržení požadavku na stránku ASP aplikace je vytvořena tzv. session, která má svůj identifikátor (SessionID). Hodnoty uložené na úrovni session jsou předávány dalším stránkám ASP aplikace vyvolaným v rámci dané session.

Session je ukončena pokud:

Session je realizována pomocí mechanismu cookies. Server a klient si mezi sebou předávají cookie obsahující SessionID.

Proměnné a objekty viditelné na úrovni session jsou uloženy na serveru a jsou přidruženy ke konkrétní hodnotě SessionID.

Viditelnost na úrovni aplikace

Proměnné a objekty viditelné na úrovni aplikace jsou viditelné ve všech stránkách aplikace a jsou společné pro všechny session. To znamená, že jsou na serveru uloženy pouze jednou.

Typické použití je pro nejrůznější počítadla přístupů, která jsou společná pro všechny uživatele.

Vytváření proměnných a objektů

Proměnné a objekty na úrovni stránky

Proměnná je vytvořena v okamžiku, kdy jí přiřadíme nějakou hodnotu a zaniká v okamžiku dokončení zpracovávání stránky.

Objekt je vytvořen při volání metody Server.CreateObject uvnitř stránky, například:

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Proměnné a objekty na úrovni session

Proměnná na úrovni session je vytvořena v okamžiku, kdy jí přiřadíme nějakou hodnotu a zaniká v okamžiku zrušení session.

Proměnné na úrovni session se obvykle vytvářejí v podprogramu Session_OnStart v souboru global.asa.

K hodnotě proměnné na úrovni session přistupujeme následujícím způsobem:

'Přiřazení hodnoty
Session("jmeno") = hodnota


'Čtení hodnoty proměnné
hodnota = Session("jmeno")

Objekty na úrovni session se mohou vytvářet několika způsoby.

Objekt můžeme vytvořit voláním metody Server.CreateObject v obslužném podprogramu události Session_OnStart v souboru global.asa.

Příklad:

Set Session("pocitadlo") = Server.CreateObject("MSWC.Counters")

Další možností je použití HTML elementu <OBJECT>.

<OBJECT RUNAT="Server" SCOPE="Session" ID="pocitadlo" PROGID="MSWC.Counters">
</OBJECT>

Objekty vytvořené na úrovni session zanikají při ukončení session.

Proměnné a objekty na úrovni aplikace

Proměnná na úrovni aplikace je vytvořena v okamžiku, kdy jí přiřadíme nějakou hodnotu a zaniká v okamžiku ukončení aplikace (například při vypnutí serveru).

K hodnotě proměnné na úrovni aplikace přistupujeme následujícím způsobem:

'Přiřazení hodnoty
Application("jmeno") = hodnota


'Čtení hodnoty proměnné
hodnota = Application("jmeno")

Objekty na úrovni aplikace se mohou vytvářet několika způsoby.

Objekt můžeme vytvořit voláním metody Server.CreateObject v obslužném podprogramu události Application_OnStart v souboru global.asa.

Příklad:

Set Application("pocitadlo") = Server.CreateObject("MSWC.Counters")

Další možností je použití HTML elementu <OBJECT>.

<OBJECT RUNAT="Server" SCOPE="Application" ID="pocitadlo" PROGID="MSWC.Counters">
</OBJECT>

Objekty vytvořené na úrovni aplikace zanikají při ukončení aplikace (např. při vypnutí serveru).

Soubor global.asa

Soubor global.asa obsahuje nastavení standardních vlastností stránek aplikace a obslužné podprogramy událostí týkajících se session a aplikace.

!!!Pozor!!! Na některých serverech nabízejících zdarma prostor pro vaše internetové stránky je zablokována možnost využití souboru global.asa. Pokud se vám bude zdát, že obsah vašeho souboru global.asa je ignorován, možná váš poskytoval webového prostoru má tuto možnost záměrně zablokovánu.

Standardní vlastnosti stránek ASP aplikace

Standardní vlastnosti všech stránek aplikace se nastavují direktivou <%@ ... %>.

Je možné nastavit následující vlastnosti:

Direktiva Popis
CODEPAGE Určuje znakovou sadu.
ENABLESESSIONSTATE

Při nastavení hodnoty na False není prohlížeči odesílána cookie obsahující SessionID. Hlavním důvodem nastavení této hodnoty je zvýšení efektivity při zpracovávání stránek, které nepotřebují uchovávat stavové informace.

Implicitní hodnota je True.

LANGUAGE Použitý skriptovací jazyk. Implicitní jazyk je VBScript.
LCID Celočíselná hodnota určující národní prostředí stránek. Národní prostředí ovlivňuje například formát data, oddělovač desetinné části čísla, symbol měny apod.
TRANSACTION Nastavuje, že stránka je vykonávána jako transakce.

V direktivě může být nastavena libovolná kombinace uvedených vlastností. Příklad typického použití:

<%@ LANGUAGE="VBScript" CODEPAGE="1250" LCID="1029" %>

Tato direktiva není povinná a může být v souboru global.asa vynechána. Pro nenastavenné vlastnosti se použijí implicitní hodnoty.

Vlastnosti nastavené v souboru global.asa mohou být přenastaveny při použití této direktivy na začátku konkrétní stránky.

Obsluha událostí

V souboru global.asa se mohou vyskytovat podprogramy obsluhující události spuštění a ukočení aplikace a zahájení a ukončení session.

Application_OnStart

Podprogram Application_OnStart se automaticky spustí v okamžiku spuštění aplikace, což znamená před tím, než je vykonána libovolná stránka dané ASP aplikace.

Nejčastěji se používá pro inicializaci počítadla přístupů a pro podobné účely.

Application_OnEnd

Podprogram Application_OnEnd se spustí před ukončením aplikace. K ukončení aplikace může dojít například při vypnutí serveru.

Tento podprogram je možné použít například pro uložení hodnot proměnných do souboru pro jejich uchování do příštího spuštění aplikace.

Session_OnStart

Tento podprogram se spustí před vytvořením session, pokud ještě nebyla spuštěna daná aplikace, vykoná se nejdříve podprogram Application_OnStart a pak teprve podprogram Session_OnStart.

Obvykle se v tomto podprogramu provádí například inkrementace počítadla přístupů.

Session_OnEnd

Tento podprogram se volá v okamžiku ukončení session. V případě ukončení aplikace se nejprve zavolá pro všechny aktivní session podprogram Session_OnEnd a teprve pak se zavolá podprogram Application_OnEnd.

Příklad souboru global.asa

Následuje příklad jednoduchého souboru global.asa, který vám umožní zobrazovat na vašich stránkách počet přístupů a datum spuštění počítadla.

<%@ LANGUAGE="VBScript" CODEPAGE="1250" LCID="1029" %>
  'Nastavení standardních vlastností všech stránek

<%
Sub Application_OnStart()
  'Byla spuštěna aplikace
  Application("CasSpusteni") = Now 'Uložení času spuštění
  Application("PocetPristupu") = 0 'Vynulování počítadla
End Sub

Sub Session_OnStart()
  'Byla zahájena nová session, zvýšíme hodnotu počítadla přístupů
  Application("PocetPristupu") = Application("PocetPristupu") + 1
End Sub
%>

Zjednodušený příklad vložení počítadla do stránky:

 ...
Počet přístupů: <%= Application("PocetPristupu") %><BR>
Počítadlo bylo spuštěno: <%= Application("CasSpusteni") %>
...

Hlavní stránka