ASP Global.asa fil
- Forrige side ASP #include
- Næste side ASP e-mail
Global.asa-filen er en valgfri fil, der kan indeholde objekter, variabler og metoder, der kan tilgås af hver side i ASP-applikationen. Alle gyldige browser-skript kan bruges i Global.asa.
Global.asa-filen
Global.asa-filen er en valgfri fil, der kan indeholde objekter, variabler og metoder, der kan tilgås af hver side i ASP-applikationen. Alle gyldige browser-skript kan bruges i Global.asa.
Global.asa-filen kan indeholde følgende indhold:
- Application-hændelse
- Session-hændelse
- <object> erklæring
- TypeLibrary-deklaration
- #include-instruktion
Kommentarer:Global.asa-filen skal opbevares i ASP-applikationens rodmappe, og hver applikation kan kun have én Global.asa-fil.
Event i Global.asa
I Global.asa kan vi fortælle application- og session-objekterne, hvad de skal gøre ved opstart og afslutning. Koden, der udfører dette opgave, placeres i eventhandleren. Global.asa-filen kan indeholde fire typer events:
Application_OnStart - Dette event udløses, når den første bruger kalder sin første side i ASP-applikationen. Dette event udløses også, når webserveren genstartes eller Global.asa-filen redigeres. "Session_OnStart"-eventet udløses umiddelbart efter dette event.
Session_OnStart - Dette event udløses hver gang en ny bruger anmoder om sin første side i ASP-applikationen.
Session_OnEnd - Dette event udløses hver gang en bruger afslutter sin session. Hvis der ikke anmodes om en side inden for en bestemt tid (standardtiden er 20 minutter), afsluttes sessionen.
Application_OnEnd - Dette event udløses efter det sidste bruger har afsluttet sin session. Typisk sker dette, når webserveren stopper. Denne subprogram bruges til at rydde op efter at applikationen er stoppet, f.eks. slette poster eller skrive information til en tekstfil.
Global.asa-filen kan se sådan ud:
<script language="vbscript" runat="server"> sub Application_OnStart 'nogle kode end sub sub Application_OnEnd 'nogle kode end sub sub Session_OnStart 'nogle kode end sub sub Session_OnEnd 'nogle kode end sub </script>
Kommentarer:Da vi ikke kan bruge ASP's skriptadskillelse (<% og %>) til at indsætte script i Global.asa-filen, skal vi bruge HTML's <script>-element.
<object> erklæring
Du kan oprette objekter med session eller application-omfang ved hjælp af <object>-tagget i Global.asa-filen.
Kommentarer:Et <object>-tag skal placeres uden for <script>-tagget.
Syntaks:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
parameter | beskrivelse |
---|---|
scope | Indstil objektets omfang (Session eller Application). |
id | Tildel et unikt id til objektet. |
ProgID |
ID knyttet til ClassID. ProgID-formatet er: [Vendor.]Component[.Version]. ProgID eller ClassID skal specificeres. |
ClassID |
Tildel et unikt id til COM-klassenobjekt. ProgID eller ClassID skal specificeres. |
eksempel
den første instans opretter et "MyAd" med brug af ProgID-parametret som session-objekt med rækkevidde:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
den anden instans opretter en "MyConnection" med brug af ClassID-parametret.
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"> </object>
Disse objekter, der deklareres i denne Global.asa-fil, kan bruges af alle scripts i applikationen.
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
Du kan citere "MyAd"-objektet fra hvilken som helst side i din ASP-applikation:
en .ASP-fil:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary-deklaration
TypeLibrary (typebibliotek) er en container, der indeholder DLL-filer, der svarer til COM-objekter. Ved at inkludere kald til TypeLibrary i Global.asa kan man få adgang til konstanter for COM-objekter, og ASP-kode kan rapportere fejl bedre. Hvis din sites applikation afhænger af COM-objekter, der allerede er deklarerede dataTyper i typebiblioteket, kan du deklarere typebiblioteket i Global.asa.
Syntaks:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
parameter | beskrivelse |
---|---|
file | definerer den absolute sti til typebiblioteket. Parameteren file eller uuid er obligatorisk, begge må være angivet. |
uuid | definerer en unik identifikator for typebiblioteket. Parameteren file eller uuid er obligatorisk, begge må være angivet. |
version | valgfri. Bruges til at vælge version. Hvis den specifikke version ikke findes, bruges den nærmeste version. |
lcid | valgfri. Bruges som regionidentifikator for typebiblioteket. |
fejlværdi
serveren vil returnere en af følgende fejlmeddelelser:
fejl | kode | beskrivelse |
---|---|---|
ASP | 0222 | Invalid type library specification |
ASP | 0223 | Type library not found |
ASP | 0224 | Type library cannot be loaded |
ASP | 0225 | Type library cannot be wrapped |
Kommentarer:METADATA-tagen kan placeres i Global.asa-filen ethvert sted (både inde og uden for <script>-tagget). Vi anbefaler dog at placere METADATA-tagen i toppen af Global.asa-filen.
Begrænsninger
Begrænsninger for, hvad der kan refereres til i Global.asa-filen:
Du kan ikke vise teksten i Global.asa-filen. Denne fil kan ikke vise information.
Du kan kun bruge Server- og Application-objekterne i Application_OnStart- og Application_OnEnd-underprogrammerne. I Session_OnEnd-underprogrammet kan du bruge Server, Application og Session-objekterne. I Session_OnStart-underprogrammet kan du bruge alle indbyggede objekter.
Sådan bruges subroutiner
Global.asa bruges ofte til at initialisere variabler.
Nedenstående eksempel viser, hvordan man kan detektere den præcise tid, en besøger første gang kommer til webstedet. Tiden gemmes i en Session-objekt kaldet "started", og værdien af "started" variablen kan fås af enhver ASP-side i applikationen:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa kan også bruges til at kontrollere adgang til sider.
Nedenstående eksempel viser, hvordan hver ny besøger kan omdirigeres til en anden side, i dette eksempel vil det være til siden "newpage.asp":
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
Vi kan også inkludere funktioner i Global.asa.
I de næste eksempler, når webserveren starter, starter Application_OnStart underprogrammet også. Derefter kalder Application_OnStart underprogrammet et andet underprogram kaldet "getcustomers". "getcustomers" underprogrammet åbner en database og henter en recordset fra "customers" tabellen. Denne recordset tildeling til en array, uden at søge i databasen, kan enhver ASP-side få adgang til denne 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-instans
I dette eksempel skal vi oprette en Global.asa-fil, der kan beregne det aktuelle antal besøgende.
Application_OnStart sætter værdien af Application-variablen "visitors" til 0, når serveren starter.
Hver gang en ny bruger besøger, tilføjes 1 til variablen "visitors" af Session_OnStart-subrutinen.
Hver gang Session_OnEnd-subrutinen aktiveres, reduceres variablen "visitors" med 1.
Global.asa-filen:
<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>
Denne ASP-fil viser antallet af nutidige brugere:
<html> <head> </head> <body> <p>Der er <%response.write(Application("visitors"))%> online nu!</p> </body> </html>
- Forrige side ASP #include
- Næste side ASP e-mail