ASP Global.asa Bestand
- Vorige Pagina ASP #include
- Volgende Pagina ASP E-mail
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>
- Vorige Pagina ASP #include
- Volgende Pagina ASP E-mail