File Global.asa ASP

Il file Global.asa è un file opzionale che può contenere dichiarazioni di oggetti, variabili e metodi che possono essere acceduti da ogni pagina dell'applicazione ASP. Tutti i script di browser validi possono essere utilizzati nel Global.asa.

File Global.asa

Il file Global.asa è un file opzionale che può contenere dichiarazioni di oggetti, variabili e metodi che possono essere acceduti da ogni pagina dell'applicazione ASP. Tutti i script di browser validi possono essere utilizzati nel Global.asa.

Il file Global.asa può includere il seguente contenuto:

  • Evento Application
  • Evento Sessione
  • Dichiarazione <object>
  • Dichiarazione TypeLibrary
  • Istruzione #include

Note:Il file Global.asa deve essere conservato nella directory radice dell'applicazione ASP e ogni applicazione può avere solo un file Global.asa.

Evento in Global.asa

Nel file Global.asa, possiamo informare l'oggetto application e sessione su cosa fare durante l'avvio e la chiusura. Il codice per completare questa attività viene messo nei gestori di eventi. Il file Global.asa può contenere quattro tipi di eventi: }}

Application_OnStart - Questo evento si verifica quando il primo utente chiama la prima pagina dell'applicazione ASP. Questo evento si verifica quando il server web si riavvia o il file Global.asa viene modificato. L'evento "Session_OnStart" si verifica immediatamente dopo questo evento.

Session_OnStart - Questo evento si verifica ogni volta che un nuovo utente richiede la prima pagina dell'applicazione ASP.

Session_OnEnd - Questo evento si verifica ogni volta che un utente termina la sua sessione. Se non viene richiesta una pagina entro un periodo di tempo specificato (l'evento predefinito è di 20 minuti), la sessione termina.

Application_OnEnd - Questo evento si verifica dopo che l'ultimo utente ha terminato la sua sessione. Nei casi tipici, questo evento si verifica quando il server web si ferma. Questo sottoprogramma viene utilizzato per pulire le impostazioni dopo che l'applicazione si è fermata, ad esempio cancellare record o scrivere informazioni in un file di testo.

Il file Global.asa potrebbe essere simile a questo:

<script language="vbscript" runat="server">
sub Application_OnStart
  'alcun codice
end sub
sub Application_OnEnd
  'alcun codice
end sub
sub Session_OnStart
  'alcun codice
end sub
sub Session_OnEnd
  'alcun codice
end sub
</script>

Note:Poiché non è possibile inserire script nel file Global.asa utilizzando il separatore di script di ASP (<% e %>), dobbiamo utilizzare l'elemento HTML <script>.

Dichiarazione <object>

E' possibile creare oggetti con ambito sessione o application utilizzando il tag <object> nel file Global.asa.

Note:Il tag <object> deve essere posizionato al di fuori del tag <script>.

Sintassi:

<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....
</object>
Parametro Descrizione
scope Impostare l'ambito dell'oggetto (ambito di applicazione o sessione).
id Assegnare un id unico all'oggetto.
ProgID

Id associato al ClassID. La forma del ProgID è: [Vendor.]Component[.Versione].

ProgID o ClassID devono essere specificati.

ClassID

Specificare un id unico per l'oggetto della classe COM.

ProgID o ClassID devono essere specificati.

istanza

La prima istanza crea un'istanza chiamata "MyAd" utilizzando il parametro ProgID e con un oggetto di ambito sessione:

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

La seconda istanza crea un'istanza chiamata "MyConnection" utilizzando il parametro ClassID:

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

Gli oggetti dichiarati in questo file Global.asa possono essere utilizzati da qualsiasi script dell'applicazione.

GLOBAL.ASA:

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

È possibile fare riferimento a questo oggetto "MyAd" da qualsiasi pagina dell'applicazione ASP:

Un file .ASP:

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

Dichiarazione TypeLibrary

TypeLibrary (Libreria di tipi) è un contenitore che contiene i file DLL corrispondenti agli oggetti COM. Includendo chiamate alla TypeLibrary in Global.asa, è possibile accedere ai costanti degli oggetti COM e migliorare la segnalazione degli errori dal codice ASP. Se l'applicazione del sito dipende da oggetti COM che hanno già dichiarato il tipo nella libreria di tipi, è possibile dichiarare la TypeLibrary in Global.asa.

Sintassi:

<!--METADATA TYPE="TypeLib"
file="filename"
uuid="typelibraryuuid"
version="versionnumber"
lcid="localeid"
-->
Parametro Descrizione
file Definisce il percorso assoluto che punta alla libreria di tipi. I parametri file o uuid sono obbligatori.
uuid Definisce un identificatore unico per la libreria di tipi. I parametri file o uuid sono obbligatori.
version Opzionale. Utilizzato per selezionare la versione. Se non viene trovata la versione specificata, verrà utilizzata la versione più vicina.
lcid Opzionale. Identificatore di regione utilizzato per la libreria di tipi.

Valore di errore

Il server restituirà uno dei seguenti messaggi di errore:

Errore Codice Descrizione
ASP 0222 Specificazione non valida della libreria di tipi
ASP 0223 Type library not found
ASP 0224 Type library cannot be loaded
ASP 0225 Type library cannot be wrapped

Note:Il tag METADATA può essere posizionato in qualsiasi posizione nel file Global.asa (sia dentro che fuori il tag <script>). Tuttavia, raccomandiamo di posizionare il tag METADATA all'inizio del file Global.asa.

Limitazioni

Limitazioni su ciò che può essere richiamato nel file Global.asa:

Non puoi visualizzare il testo nel file Global.asa. Questo file non può visualizzare informazioni.

Puoi utilizzare gli oggetti Server e Application solo nei sottoprogrammi Application_OnStart e Application_OnEnd. Nel sottoprogramma Session_OnEnd, puoi utilizzare gli oggetti Server, Application e Session. Nel sottoprogramma Session_OnStart, puoi utilizzare qualsiasi oggetto integrato.

Come utilizzare i sottoprogrammi

Global.asa viene spesso utilizzato per inizializzare variabili.

Esempio di come rilevare l'ora esatta in cui il visitatore è arrivato per la prima volta sul sito. L'ora è memorizzata in un oggetto Session chiamato "started", e il valore di "started" può essere acceduto da qualsiasi pagina ASP nell'applicazione:

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

Global.asa può anche essere utilizzato per controllare l'accesso alle pagine.

Esempio di come reindirizzare ogni nuovo visitatore a un'altra pagina, in questo esempio viene reindirizzato alla pagina "newpage.asp":

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

Possiamo anche includere funzioni in Global.asa.

Negli esempi seguenti, quando il server web viene avviato, viene anche avviato il sottoprogramma Application_OnStart. Successivamente, il sottoprogramma Application_OnStart chiama un altro sottoprogramma chiamato "getcustomers". Il sottoprogramma "getcustomers" apre un database e poi recupera un set di record dallo "customers" tabella. Questo set di record viene assegnato a un array, quindi qualsiasi pagina ASP può accedere a questo array senza interrogare il database:

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

Esempio di istanza Global.asa

In questo esempio, dobbiamo creare un file Global.asa che possa calcolare il numero di visitatori attuali.

Application_OnStart imposta il valore della variabile Application "visitors" a 0 quando il server viene avviato.

Ogni volta che un nuovo utente accede, il sottoprogramma Session_OnStart aggiungerà 1 alla variabile "visitors".

Ogni volta che il sottoprogramma Session_OnEnd viene attivato, questo sottoprogramma ridurrà di 1 il valore della variabile "visitors".

File Global.asa:

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

Questo file ASP mostrerà il numero di utenti attuali:

<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%> online now!</p>
</body>
</html>