Il file Global.asa
Il file Global.asa è un file opzionale che può contenere dichiarazioni di oggetti, variabili e metodi che possono essere accessibili da ogni pagina in un'applicazione ASP.
Tutti gli script del browser valide (JavaScript, VBScript, JScript, PerlScript, etc.) possono essere utilizzate all'interno Global.asa.
Il file Global.asa può contenere solo i seguenti:
- eventi di applicazione
- eventi di sessione
- <object> dichiarazioni
- dichiarazioni TypeLibrary
- la direttiva #include
Note: Il file Global.asa deve essere memorizzato nella directory principale dell'applicazione ASP, e ogni applicazione può avere soltanto un file Global.asa.
Eventi a Global.asa
In Global.asa si può dire l'applicazione e gli oggetti sessione di cosa fare quando l'applicazione / sessione inizia e cosa fare quando l'applicazione / sessione termina. Il codice per questo è posto in gestori di eventi. Il file Global.asa può contenere quattro tipi di eventi:
Application_OnStart - Si verifica quando il primo utente chiama la prima pagina in un'applicazione ASP. Questo evento si verifica dopo che il server Web viene riavviato o dopo che il file Global.asa viene modificato. Il "Session_OnStart" evento si verifica subito dopo questo evento.Session_OnStart - Questo evento si verifica ogni volta che un nuovo utente richiede la sua prima pagina dell'applicazione ASP.
Session_OnEnd - Questo evento si verifica ogni volta che un utente termina una sessione. Un utente-sessione termina dopo una pagina non è stato richiesto dall'utente per un determinato periodo di tempo (by default this is 20 minutes) .
Application_OnEnd - Questo evento si verifica dopo che l'utente ULTIMO ha terminato la sessione. In genere, questo evento si verifica quando un server Web si ferma. Questa procedura viene utilizzata per ripulire impostazioni dopo si ferma l'applicazione, come i record di cancellazione o di scrivere le informazioni in file di testo.
Un file Global.asa potrebbe essere simile a questa:
<script language="vbscript" runat="server">
sub Application_OnStart
' Note: Perché non possiamo usare i delimitatori di script ASP (<% and %>) per inserire gli script nel file Global.asa, mettiamo i sottoprogrammi all'interno di un HTML <script> elemento.
<object> Dichiarazioni
E 'possibile creare oggetti con la sessione o portata di applicazione in Global.asa utilizzando il <object> tag.
Note: Il <object> tag deve essere al di fuori del <script> tag!
Sintassi
<object runat="server" scope=" Parametro Descrizione scope Imposta il campo di applicazione dell'oggetto (either Session or Application) id Specifica un ID univoco per l'oggetto ProgID Un ID associato a una classe id. Il formato per ProgID è [vendor.] Componente [.version] Sia ProgID o ClassID devono essere specificati.
ClassID Specifica un ID univoco per un oggetto di classe COM. Sia ProgID o ClassID devono essere specificati.
Esempi
Il primo esempio crea un oggetto di scope di sessione denominata "MyAd" utilizzando il parametro ProgID:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object> Il secondo esempio crea un oggetto di portata applicazione denominata "MyConnection" utilizzando il parametro ClassID:
<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object> Gli oggetti dichiarati nel file Global.asa possono essere utilizzati da qualsiasi script nell'applicazione:
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object>
You could reference the object "MyAd" from any page in the ASP application:
SOME .ASP FILE:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary dichiarazioni
Un TypeLibrary è un contenitore per il contenuto di un file DLL corrispondenti ad un oggetto COM. Includendo una chiamata al TypeLibrary nel file Global.asa, le costanti dell'oggetto COM è possibile accedere, e gli errori possono essere meglio segnalati dal codice ASP. Se l'applicazione Web si basa su oggetti COM che hanno dichiarato i tipi di dati in librerie dei tipi, è possibile dichiarare le librerie dei tipi in Global.asa.
Sintassi
<!--METADATA TYPE="TypeLib"
file=" Parametro Descrizione file Specifica un percorso assoluto per una libreria di tipi. O è richiesto il parametro file o il parametro uuid
uuid Specifica un identificatore univoco per la libreria dei tipi. O è richiesto il parametro file o il parametro uuid
version Opzionale. Utilizzato per la selezione di versione. Se la versione richiesta non esiste, quindi la versione più recente è usato lcid Opzionale. L'identificatore delle impostazioni locali da utilizzare per la libreria dei tipi valori di errore
Il server può restituire uno dei seguenti messaggi di errore:
Codice di errore Descrizione ASP 0222 Tipo non valido specifica della libreria ASP 0223 libreria di tipo non trovato ASP 0224 libreria di tipo non può essere caricato ASP 0225 libreria di tipo non può essere avvolto
Note: tag di metadati possono apparire ovunque nel file Global.asa (both inside and outside <script> tags) . Tuttavia, si consiglia di tag di metadati appaiono nella parte superiore del file Global.asa.
restrizioni
Restrizioni su ciò che è possibile includere nel file Global.asa:
- Non è possibile visualizzare il testo scritto nel file Global.asa. Questo file non può visualizzare le informazioni
- È possibile utilizzare solo gli oggetti di server e applicazioni nelle subroutine Application_OnStart e Application_OnEnd. Nella subroutine Session_OnEnd, è possibile utilizzare Server, Application, e gli oggetti di sessione. Nella subroutine Session_OnStart è possibile utilizzare qualsiasi oggetto built-in
Come usare i sottoprogrammi
Global.asa è spesso usato per inizializzare le variabili.
L'esempio seguente mostra come rilevare l'ora esatta un visitatore prima arriva su un sito Web. Il tempo è memorizzato in una variabile di sessione chiamata "started" , e il valore della "started" variabile si può accedere 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 usato per controllare l'accesso pagina.
L'esempio seguente mostra come reindirizzare ogni nuovo visitatore a un'altra pagina, in questo caso ad una pagina chiamata "newpage.asp" :
<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script> E si può includere funzioni nel file Global.asa.
Nell'esempio riportato di seguito la subroutine Application_OnStart si verifica quando il server Web si avvia. Poi la subroutine Application_OnStart chiama un'altra subroutine denominata "getcustomers" . Il "getcustomers" subroutine apre un database e recupera un record stabilito dal "customers" tavolo. Il set di record viene assegnato a un array, dove si può accedere da qualsiasi pagina ASP senza effettuare query al 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 global.asa
In questo esempio, creeremo un file Global.asa che conta il numero di visitatori attuali.
- L'Application_OnStart imposta la variabile Application "visitors" a 0 all'avvio del server
- La subroutine Session_OnStart aggiunge uno alla variabile "visitors" ogni volta che un nuovo visitatore arriva
- La subroutine Session_OnEnd sottrae uno da "visitors" ogni volta che questa subroutine viene attivato
Il 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> Per visualizzare il numero di visitatori attuali in un file ASP:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%>
online now!</p>
</body>
</html>