ASP Global.asa tiedosto

Global.asa-tiedosto on valinnainen tiedosto, joka voi sisältää ASP-sovelluksessa kaikkien sivujen kautta käytettävissä olevia objekteja, muuttujia ja menetelmiä.

Global.asa-tiedosto

Global.asa-tiedosto on valinnainen tiedosto, joka voi sisältää ASP-sovelluksessa kaikkien sivujen kautta käytettävissä olevia objekteja, muuttujia ja menetelmiä. Kaikki lailliset selaimen skriptit voidaan käyttää Global.asa:ssa.

Global.asa-tiedosto voi sisältää seuraavat elementit:

  • Application-tapahtumat
  • Session-tapahtumat
  • <object>-ilmoitus
  • TypeLibrary-ilmoitus
  • #include-instruktiot

Huomautus:Global.asa-tiedosto täytyy sijaita ASP-sovelluksen juurikansiossa, ja jokaisella sovelluksella voi olla vain yksi Global.asa-tiedosto.

Tapahtumat Global.asa:ssa

Global.asa:ssa voimme ilmoittaa, mitä application- ja session-objektit tekevät käynnistyessään ja päätyessään. Tämä tehtävä suorittava koodi sijoitetaan tapahtumankäsittelijään. Global.asa-tiedosto voi sisältää neljä erilaista tapahtumaa:

Application_OnStart - Tämä tapahtuma tapahtuu ensimmäisen käyttäjän ensimmäisen sivun pyytäessä ASP-sovelluksesta. Tämä tapahtuma tapahtuu myös, kun Web-palvelin käynnistetään uudelleen tai Global.asa-tiedosto muutetaan. "Session_OnStart"-tapahtuma tapahtuu heti tämän tapahtuman jälkeen.

Session_OnStart - Tämä tapahtuma tapahtuu aina, kun uusi käyttäjä pyytää hänen ensimmäistä sivuaan ASP-sovelluksessa.

Session_OnEnd - Tämä tapahtuma tapahtuu aina, kun käyttäjä päättää session. Jos sivua ei pyydetä määräajassa (oletusarvoinen tapahtuma on 20 minuuttia), session päätyy.

Application_OnEnd - Tämä tapahtuma tapahtuu viimeisen käyttäjän session päätyttyä. Yleensä tämä tapahtuma tapahtuu, kun Web-palvelin lopettaa toimintansa. Tämä aliohjelma käytetään sovelluksen lopettamisen jälkeen asetusten poistamiseen, kuten tietueiden poistamiseen tai tiedostoon kirjoittamiseen.

Global.asa-tiedosto voi olla esimerkiksi seuraavanlainen:

<script language="vbscript" runat="server">
al Application_OnStart
  'jotain koodia
end sub
al Application_OnEnd
  'jotain koodia
end sub
al Session_OnStart
  'jotain koodia
end sub
al Session_OnEnd
  'jotain koodia
end sub
</script>

Huomautus:Koska ASP:n skriptien erotin (<% ja %>) ei voi olla käytössä Global.asa-tiedostossa, meidän täytyy käyttää HTML:n <script>-elementtiä.

<object>-ilmoitus

Voit luoda session- tai application-toimialueen objekteja Global.asa-tiedostossa käyttämällä <object>-elementtiä.

Huomautus:<object>-elementti tulisi sijaita <script>-elementin ulkopuolella.

Syntaksi:

<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....
</object>
Parametri Kuvaus
scope Aseta objektin toimialue (toimialue) (Session tai Application).
id Määritä objektin yksilöllinen tunniste.
ProgID

ClassID:ään liittyvä tunniste. ProgID-muoto on: [Toimittaja.]Komponentti[.Versio].

ProgID tai ClassID on määritettävä.

ClassID

Määritä COM-luokan objektin yksilöllinen tunniste.

ProgID tai ClassID on määritettävä.

esimerkki

Ensimmäinen instanssi luo nimeltään "MyAd" ja käyttää ProgID-parametria olevan session-ala-objektin:

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

Toinen instanssi luo nimeltään "MyConnection" ja käyttää ClassID-parametria olevan

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

Tässä Global.asa-tiedostossa määritetyt objektit ovat käytettävissä sovelluksen kaikissa skripteissä.

GLOBAL.ASA:

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

Voit viitata tähän "MyAd"-objektiin ASP-sovelluksen mihin tahansa sivulta:

Tietty .ASP-tiedosto:

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

TypeLibrary-ilmoitus

TypeLibrary (tyyppikirjasto) on kontti, joka sisältää DLL-tiedostot, jotka vastaavat COM-objekteja. Komponenttien kutsun sisällyttäminen Global.asa:hen mahdollistaa COM-objektien muuttujien pääsyn, ja ASP-koodi voi raportoida virheet paremmin. Jos verkkosivustosi sovellus riippuu COM-objekteista, jotka on määritetty tyyppikirjastossa, voit ilmoittaa tyyppikirjastosta Global.asa:ssa.

Syntaksi:

<!--METADATA TYPE="TypeLib"
file="filename"
uuid="typelibraryuuid"
version="versionnumber"
lcid="localeid"
-->
Parametri Kuvaus
file Määrittää tyyppikirjastoon viittaavan absoluuttisen polun. Parametrit file tai uuid, molemmat ovat välttämättömiä.
uuid Määrittää ainutlaatuisen tunnisteen tyyppikirjastolle. Parametrit file tai uuid, molemmat ovat välttämättömiä.
version Valinnainen. Valitaan versio. Jos määritettyä versiota ei löydy, käytetään lähintä versiota.
lcid Valinnainen. Alueidentiteetti tyyppikirjastolle.

Virhearvo

Palvelin palauttaa yhden seuraavista virheilmoituksista:

Virhe Koodi Kuvaus
ASP 0222 Virheellinen tyyppikirjaston määrittely
ASP 0223 Type library not found
ASP 0224 Type library cannot be loaded
ASP 0225 Type library cannot be wrapped

Huomautus:METADATA-tunniste voi olla missä tahansa Global.asa-tiedoston sijainnissa (sekä <script>-tunnisteen sisällä että sen ulkopuolella). Kuitenkin suosittelemme sijoittamaan METADATA-tunnisteen Global.asa-tiedoston ylälaitaan.

Rajoitukset

Rajoitukset siitä, mitä voidaan viitata Global.asa-tiedostossa:

Et voi näyttää Global.asa-tiedoston tekstiä. Tämä tiedosto ei voi näyttää tietoja.

Voit käyttää Server- ja Application-objekteja vain Application_OnStart- ja Application_OnEnd-aliprocedureissa. Session_OnEnd-aliprocedureissa voit käyttää Server-, Application- ja Session-objekteja. Session_OnStart-aliprocedureissa voit käyttää kaikkia sisäänrakennettuja objekteja.

Miten käyttää aliproseduuria

Global.asa käytetään usein muuttujien alustamiseen.

Alla oleva esimerkki näyttää, kuinka voidaan määrittää vierailevan henkilön tarkka saapumisaika sivustolle. Aika tallennetaan nimettyyn Session-objektiin nimeltä "started", ja "started"-muuttujan arvoa voidaan käyttää missä tahansa ASP-sivulla sovelluksessa:

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

Global.asa voidaan käyttää sivun pääsyn hallintaan.

Alla oleva esimerkki näyttää, kuinka jokainen uusi vieraileva henkilö ohjataan toiseen sivuun, tässä tapauksessa sivuun "newpage.asp":

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

Voimme myös sisällyttää funktioita Global.asa-tiedostoon.

Esimerkissä alla, kun Web-palvelin käynnistyy, myös Application_OnStart-aliprocedure käynnistyy. Sitten Application_OnStart-aliprocedure kutsuu toista aliproseduuria nimeltä "getcustomers". "getcustomers"-aliprocedure avaa tietokannan ja hakee yhden tietueen "customers"-taulusta. Tämä tietuekokoelma asetetaan arvoksi taulukolle, joten mikään ASP-sivu voi käyttää tätä taulukkoa ilman tietokantahaun suorittamista:

<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 esimerkki

Tässä esimerkissä meidän täytyy luoda Global.asa-tiedosto, joka voi laskea nykyisiä kävijöitä.

Application_OnStart asettaa, kun palvelin käynnistyy, Application-muuttujan "visitors" arvon 0:ksi.

Kun uusi käyttäjä vierailee, Session_OnStart-algoritmi lisää muuttujan "visitors" arvoa 1:llä.

Kun Session_OnEnd-algoritmia kutsutaan, tämä algoritmi vähentää muuttujan "visitors" arvoa 1:llä.

Global.asa-tiedosto:

<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>

Tämä ASP-tiedosto näyttää nykyisten käyttäjien määrän:

<html>
<head>
</head>
<body>
<p>Nyt on verkossa <%response.write(Application("visitors"))%>!</p>
</body>
</html>