ASP Global.asa file
- Previous page ASP #include
- Next page ASP email
Global.asa-filen är en valfri fil som kan innehålla objekt, variabler och metoder som kan nås av varje sida i ASP-applikationen. Alla giltiga webbskript kan användas i Global.asa.
Global.asa-filen
Global.asa-filen är en valfri fil som kan innehålla objekt, variabler och metoder som kan nås av varje sida i ASP-applikationen. Alla giltiga webbskript kan användas i Global.asa.
Global.asa-filen kan innehålla följande innehåll:
- Application-händelser
- Session-händelser
- <object> deklaration
- TypeLibrary-deklaration
- Include-instruktionen
Kommentarer:Global.asa-filen måste lagras i ASP-applikationens rotkatalog och varje applikation kan bara ha en Global.asa-fil.
Evenement i Global.asa
I Global.asa kan vi informera application och session-objekt om vad de ska göra vid start och slut. Koden som utför detta uppgift placeras i händelsehanterarna. Global.asa-filen kan innehålla fyra typer av händelser:
Application_OnStart - Detta händelse inträffar när första användaren anropar sin första sida i ASP-applikationen. Detta händelse inträffar när webbservern startas om eller när Global.asa-filen redigeras. "Session_OnStart"-händelsen inträffar omedelbart efter detta händelse.
Session_OnStart - Detta händelse inträffar varje gång en ny användare begär sin första sida i ASP-applikationen.
Session_OnEnd - Detta händelse inträffar varje gång en användare avslutar sin session. Om ingen sida har begänts inom en viss tid (standardtiden är 20 minuter) avslutas sessionen.
Application_OnEnd - Detta händelse sker efter att sista användaren har avslutat sin session. Typiskt inträffar detta när webbservern stoppas. Denna subrutin används för att rensa inställningar efter att applikationen har stoppats, till exempel att ta bort poster eller skriva information till en textfil.
Global.asa-filen kan se ut så här:
<script language="vbscript" runat="server"> sub Application_OnStart 'något kod end sub sub Application_OnEnd 'något kod end sub sub Session_OnStart 'något kod end sub sub Session_OnEnd 'något kod end sub </script>
Kommentarer:Eftersom vi inte kan använda ASP:s skriptseparator (<% och %>) för att lägga till skript i Global.asa-filen, måste vi använda HTML:s <script> element.
<object> deklaration
Du kan skapa objekt med session eller application-omfattning i Global.asa-filen genom att använda taggen <object>.
Kommentarer:Taggen <object> bör vara utanför taggen <script>.
Syntaks:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
Parameter | Beskrivning |
---|---|
scope | Ställ in objektets omfattning (omfattning) (Session eller Application). |
id | Ange en unik id för objektet. |
ProgID |
ID som är kopplad till ClassID. Formatet för ProgID är: [Vendor.]Component[.Version]. ProgID eller ClassID måste anges. |
ClassID |
Ange en unik id för COM-klassobjekt. ProgID eller ClassID måste anges. |
exempel
Den första instansen skapar ett objekt med namnet "MyAd" och använder ProgID-argumentet för sessionsscope:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
Den andra instansen skapar ett objekt med namnet "MyConnection" och använder ClassID-argumentet:
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21" </object>
Dessa objekt som deklarerats i denna Global.asa-fil kan användas av alla skript i applikationen.
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
Du kan hänvisa till "MyAd"-objektet från vilken sida som helst i din ASP-applikation:
En .ASP-fil:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary-deklaration
TypeLibrary (typbibliotek) är en behållare som innehåller DLL-filer som motsvarar COM-objekt. Genom att inkludera en anrop till TypeLibrary i Global.asa kan man komma åt konstanterna för COM-objekt, och ASP-koden kan också rapportera fel bättre. Om din webbplatsapplikation är beroende av COM-objekt som har deklarerats som datatyper i typbiblioteket, kan du deklarera typbiblioteket i Global.asa.
Syntaks:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
Parameter | Beskrivning |
---|---|
file | Definierar den absoluta sökvägen till typbiblioteket. Parametrarna file eller uuid är nödvändiga, båda måste finnas. |
uuid | Definierar en unik identifierare för typbiblioteket. Parametrarna file eller uuid är nödvändiga, båda måste finnas. |
version | Valfritt. Används för att välja version. Om den specifika versionen inte hittas kommer närmaste versionen att användas. |
lcid | Valfritt. Används som regionidentifierare för typbiblioteket. |
Felvärde
Servern kommer att returnera en av följande felmeddelanden:
Fel | Kod | Beskrivning |
---|---|---|
ASP | 0222 | Ogiltig typbiblioteksspecifikation |
ASP | 0223 | Typbiblioteket hittades inte |
ASP | 0224 | Typbiblioteket kan inte laddas |
ASP | 0225 | Typbiblioteket kan inte packas |
Kommentarer:METADATA-taggen kan placeras på vilket som helst ställe i Global.asa-filen (både inom och utanför <script>-taggen). Vi rekommenderar ändå att du placerar METADATA-taggen i toppen av Global.asa-filen.
Begränsningar
Begränsningar för innehåll som kan hänvisas till i Global.asa-filen:
Du kan inte visa texten i Global.asa-filen. Denna fil kan inte visa information.
Du kan bara använda Server- och Application-objekten i Application_OnStart och Application_OnEnd underprogrammen. I Session_OnEnd underprogrammet kan du använda Server, Application och Session-objekten. I Session_OnStart underprogrammet kan du använda alla inbyggda objekt.
Hur man använder underprogram
Global.asa används ofta för att initialisera variabler.
Följande exempel visar hur man kan detektera den exakta tiden när en besökare för första gången kommer till webbplatsen. Tiden lagras i en Session-objekt som heter "started", och värdet för "started" variabeln kan komma åt av alla ASP-sidor i applikationen:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa kan också användas för att kontrollera sidåtkomst.
Följande exempel visar hur varje ny besökare kan omdirigeras till en annan sida, i detta exempel till sidan "newpage.asp":
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
Vi kan också inkludera funktioner i Global.asa.
I de följande exempel, när webbservern startas, startas också Application_OnStart underprogrammet. Därefter anropar Application_OnStart underprogrammet ett annat underprogram som heter "getcustomers". "getcustomers" underprogrammet öppnar en databas och hämtar en postuppsättning från "customers" tabellen. Denna postuppsättning tilldelas en array, och utan att fråga databasen kan alla ASP-sidor komma åt denna array:
<script language="vbscript" runat="server"> sub Application_OnStart getcustomers end 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 end sub </script>
Global.asa-exempel
I detta exempel skapar vi en Global.asa-fil som kan beräkna antalet besökare.
Application_OnStart sätter värdet för Application-variabeln "visitors" till 0 när servern startas.
När en ny användare besöker, ökas variabeln "visitors" med 1 av Session_OnStart-subrutinen.
När Session_OnEnd-subrutinen aktiveras, minskas variabeln "visitors" med 1.
Global.asa-fil:
<script language="vbscript" runat="server"> Sub Application_OnStart Application("visitors")=0 End Sub Sub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1 Application.UnLock End Sub Sub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1 Application.UnLock End Sub </script>
Denna ASP-fil visar antalet aktiva användare:
<html> <head> </head> <body> <p>Det finns <%response.write(Application("visitors"))%> online nu!</p> </body> </html>
- Previous page ASP #include
- Next page ASP email