ASP Global.asa Bestand

Het Global.asa-bestand is een optioneel bestand dat objecten, variabelen en methoden kan bevatten die door elke pagina in de ASP-applicatie kunnen worden gebruikt. Alle legitieme browser-scripts kunnen in het Global.asa worden gebruikt.

Global.asa-bestand

Het Global.asa-bestand is een optioneel bestand dat objecten, variabelen en methoden kan bevatten die door elke pagina in de ASP-applicatie kunnen worden gebruikt. Alle legitieme browser-scripts kunnen in het Global.asa worden gebruikt.

Het Global.asa-bestand kan de volgende inhoud bevatten:

  • Application-gebeurtenissen
  • Session-gebeurtenissen
  • <object> declaratie
  • TypeLibrary-declaratie
  • Include-instructie

Opmerking:Het Global.asa-bestand moet worden opgeslagen in de rootmap van de ASP-applicatie en elke applicatie kan maar één Global.asa-bestand hebben.

Evenementen in Global.asa

In het Global.asa kunnen we vertellen wat de application en session objecten moeten doen bij het starten en einde van de applicatie. De code die deze taak uitvoert, wordt geplaatst in de gebeurtenisactie. Het Global.asa-bestand kan vier soorten gebeurtenissen bevatten:

Application_OnStart - Dit evenement vindt plaats wanneer de eerste pagina van de ASP-applicatie door de eerste gebruiker wordt aangeroepen. Dit evenement vindt plaats wanneer de webserver herstart of het Global.asa-bestand wordt gewijzigd. De 'Session_OnStart' gebeurtenis vindt onmiddellijk na dit evenement plaats.

Session_OnStart - Dit evenement vindt plaats wanneer een nieuwe gebruiker zijn eerste pagina in de ASP-applicatie aanvraagt.

Session_OnEnd - Dit evenement vindt plaats wanneer een gebruiker zijn session beëindigt. Binnen een bepaalde tijd (de standaard is 20 minuten) zal de session eindigen als er geen pagina wordt aangevraagd.

Application_OnEnd - Dit evenement vindt plaats na het einde van de session van de laatste gebruiker. In typische gevallen vindt dit evenement plaats wanneer de webserver wordt gestopt. Deze subprocedure wordt gebruikt om instellingen na het stoppen van de applicatie op te schonen, zoals het verwijderen van records of het schrijven van informatie naar een tekstbestand.

Het Global.asa-bestand kan er zo uitzien:

<script language="vbscript" runat="server">
sub Application_OnStart
  'some code
einde sub
sub Application_OnEnd
  'some code
einde sub
sub Session_OnStart
  'some code
einde sub
sub Session_OnEnd
  'some code
einde sub
</script>

Opmerking:Omdat het niet mogelijk is om scriptteken ( <% en %>) in het Global.asa-bestand in te voegen, moeten we het HTML <script> element gebruiken.

<object> declaratie

U kunt objecten met session of application bereik in het Global.asa-bestand maken door de <object> tag te gebruiken.

Opmerking:De <object> tag moet buiten de <script> tag staan.

Syntax:

<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....
</object>
Parameter Beschrijving
scope Stel het bereik (bereik) van het object in (Session of Application).
id Specificeer een unieke id voor het object.
ProgID

ID die is gekoppeld aan ClassID. De opmaak van ProgID is: [Vendor.]Component[.Version].

ProgID of ClassID moet worden gespecificeerd.

ClassID

Specificeer een unieke id voor een COM-klassobject.

ProgID of ClassID moet worden gespecificeerd.

instantie

De eerste instantie heeft een "MyAd" genaamd gecreëerd en heeft een session-scope object gemaakt met de ProgID-parameter:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"
</object>

De tweede instantie heeft een "MyConnection" genaamd gecreëerd en gebruikt de ClassID-parameter.

<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"
</object>

De in deze Global.asa-bestand gedeclareerde objecten kunnen door elk script in de toepassing worden gebruikt.

GLOBAL.ASA:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"
</object>

U kunt dit "MyAd"-object van elke pagina in de ASP-toepassing aanroepen:

Een .ASP-bestand:

<%=MyAd.GetAdvertisement("/banners/adrot.txt")%> 

TypeLibrary-declaratie

TypeLibrary (typebibliotheek) is een container die de DLL-bestanden bevat die overeenkomen met COM-objecten. Door een aanroep van de TypeLibrary op te nemen in Global.asa, kunnen de constanten van de COM-objecten worden bereikt, en kan ASP-code ook beter fouten rapporteren. Als de toepassing van uw site afhankelijk is van COM-objecten die al in de typebibliotheek zijn gedeclareerd, kunt u de typebibliotheek declareren in Global.asa.

Syntax:

<!--METADATA TYPE="TypeLib"
file="filename"
uuid="typelibraryuuid"
version="versionnumber"
lcid="localeid"
-->
Parameter Beschrijving
file Stelt het absolute pad naar de typebibliotheek vast. De parameters file of uuid zijn beide vereist.
uuid Stelt een unieke identificatie in voor de typebibliotheek. De parameters file of uuid zijn beide vereist.
version Optioneel. Gebruikt om een versie te kiezen. Als de opgegeven versie niet wordt gevonden, wordt de dichtstbijzijnde versie gebruikt.
lcid Optioneel. Gebruikt voor de regioidentificatie van de typebibliotheek.

Foutwaarde

De server zal een van de volgende foutmeldingen retourneren:

Fout Code Beschrijving
ASP 0222 Ongeldige typebibliotheekspecificatie
ASP 0223 Type library niet gevonden
ASP 0224 Type library kan niet worden geladen
ASP 0225 Type library kan niet worden gewrapped

Opmerking:De METADATA-tag kan op elke locatie in het bestand Global.asa worden geplaatst (binnen en buiten de <script>-tag). Hoewel dat het geval is, raden we aan om de METADATA-tag aan de top van het bestand Global.asa te plaatsen.

Beperkingen

Beperkingen met betrekking tot het inhouden van inhoud die kan worden gerefereerd in het bestand Global.asa:

Je kunt de tekst in het bestand Global.asa niet weergeven. Dit bestand kan geen informatie weergeven.

Je kunt alleen de Server- en Application-objecten gebruiken in de subroutines Application_OnStart en Application_OnEnd. In de subprocedure Session_OnEnd kun je de Server-, Application- en Session-objecten gebruiken. In de subprocedure Session_OnStart kun je alle ingebouwde objecten gebruiken.

Hoe subroutines te gebruiken

Global.asa wordt vaak gebruikt om variabelen te initialiseren.

Het volgende voorbeeld toont hoe de exacte tijd van het eerste bezoek van een bezoeker kan worden gedetecteerd. De tijd wordt opgeslagen in de Session-object genaamd "started", en de waarde van de "started"-variabele kan worden benaderd door elke ASP-pagina in de applicatie:

<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
einde sub
</script>

Global.asa kan ook worden gebruikt om toegang tot pagina's te controleren.

Het volgende voorbeeld toont hoe elke nieuwe bezoeker kan worden doorverwezen naar een andere pagina. In dit voorbeeld wordt doorverwezen naar de pagina "newpage.asp":

<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
einde sub
</script>

We kunnen ook functies opnemen in Global.asa.

In het volgende voorbeeld, wanneer de webserver start, wordt ook de subprocedure Application_OnStart gestart. Vervolgens roept de subprocedure Application_OnStart een andere subprocedure aan genaamd "getcustomers". De subprocedure "getcustomers" opent een database en haalt een recordset op uit de tabel "customers". Deze recordset wordt toegewezen aan een array, zodat elke ASP-pagina deze array kan benaderen zonder de database te raadplegen:

<script language="vbscript" runat="server">
sub Application_OnStart
getcustomers
einde sub
sub getcustomers 
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=conn.execute("select name from customers")
Application("customers")=rs.GetRows
rs.Close
conn.Close
einde sub
</script>

Global.asa-instantie

In dit voorbeeld moeten we een Global.asa-bestand maken dat het huidige aantal bezoekers kan berekenen.

Application_OnStart stelt de waarde van de Application-variabele "visitors" in op 0 wanneer de server start.

Elke keer dat er een nieuwe gebruiker bezoekt, wordt het aantal in de variabele "visitors" toegevoegd van 1 door de sub例行programma Session_OnStart.

Elke keer dat de sub例行程序 Session_OnEnd wordt geactiveerd, wordt het aantal in de variabele "visitors" afgetrokken van 1.

Global.asa-bestand:

<script language="vbscript" runat="server">
Sub Application_OnStart
Application("visitors")=0
Einde Sub
Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
Einde Sub
Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
Einde Sub
</script>

Deze ASP-bestand toont het huidige aantal gebruikers:

<html>
<head>
</head>
<body>
<p>Er zijn <%response.write(Application("visitors"))%> online nu!</p>
</body>
</html>