FAQ
F.A.Q.
Domande - Risposte
Global.asa
Internet Provider
Software
Internet Provider
mail marketing
preventivi Internet
supporto tecnico
sms da web
download
corsi
lavoro
pagamenti
Internet Provider
 
FAQ
faq
news
Applicativi asp
Motomania

Global.asa

L'esecuzione di script in corrispondenza dell'avvio e della terminazione di un'applicazione e/o di una sessione richiede la presenza di un file, denominato Global.asa , contenente gli script opportuni.

Il file la cui estensione .asa sta per Active Server Application, viene letto dal motore ASP all'avvio dell'applicazione e all'inizio di cisacuna sessione utente. I file Global.asa possono contenere soltanto i seguenti oggetti:

Eventi Application 
Eventi Session 
Dichiarazioni <Object> 
Dichiarazioni TypeLibrary 

Eventi Application 
Un'applicazione ASP è composta di tutti i file nella root e in ogni sua sottodirectory. Un'applicazione inizia appena l'utente apre una delle pagine Web dell'applicazione e termina in corrispondenza dello shuts down del server.

L'applicazione ha due eventi: 

l'evento Application_OnStart 
l'evento Application_OnEnd 

Possiamo realizzare script per questi eventi nel file Global.asa. Quando l'applicazione parte il server controlla nel Global.asa e processa gli script contenuti in Application_OnStart . Quando invece termina , vengono processati gli script di Application_OnEnd .

Application_OnStart
Questo evento occorre prima che la nuova sessione venga creata.
Sintassi:

<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Application_OnStart
. . .
End Sub

</SCRIPT>

Parametri
ScriptLanguage 
Specifica lo script language usato per definire l'evento. Può essere VBScript oppure JScript. 

Application_OnEnd
Questo evento occorre alla terminazione della applicazione.
Sintassi

<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Application_OnEnd
. . .
End Sub

</SCRIPT>

Parametri
ScriptLanguage 
Specifica lo script language usato per definire l'evento. Può essere VBScript oppure JScript. 
Attenzione:
Non si può chiamare il metodo MapPath nello script di Application_OnEnd

Evento Session
Il Web server crea automaticamente una nuova sessione quando un utente ( non in possesso di una sessione ) , apre una pagina Web dell'applicazione. Il server distrugge l'applicazione quando scade un timeout associato alla sessione dell'utente, oppure quando invoca il metodo Abandon.

Una sessione ha due eventi associati: 

L'evento Session_OnStart 
L'evento Session_OnEnd 

Come per l'evento Application è possibile associare a questi due eventi degli script.

Session_OnStart
L'evento Session_OnStart occorre quando il server crea una nuove sessione. Questo evento rappresenta il momento giusto per definire tutte le variabili di sessione che verranno utilizzate durante l'applicazione. Tutti gli oggetti predefiniti Application , ObjectContext , Request , Response , Server , Session sono disponibili all'interno di questo evento.
Sintassi

<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Session_OnStart
. . .
End Sub

</SCRIPT>

Parametri
ScriptLanguage 
JScript o VBScript. 
Attenzione
Non è possibile utilizzare il metodo MapPath all'interno di questo evento.

Dichiarazione degli <OBJECT> 
E' possibile creare oggetti con uno scope di sessione o applicazione nei file Global.asa usando i tag <OBJECT>. Gli oggetti creati nei file Global.asa vengono creati soltanto quando il server processa lo script che contiene quell'oggetto, in questo modo è possibile risparmiare risorse di sistema.

Sintassi

<OBJECT RUNAT=Server SCOPE=Scope ID=Identifier {PROGID="progID"|CLASSID="ClassID"}>
. . .

</OBJECT>

Parametri
Scope 
Specifica la visibilità ( scope ) dell'oggetto. Nei file Global.asa, Scope può essere posto sia al valore Session che al valore Application. 
Identifier 
Specifica il nome per l'istanza dell'oggetto. 
ProgID 
E' un identificatore che deve avere il seguente formato: [Vendor.]Component[.Version] 
ClassID 
Specifica un identificatore unico per un oggetto della classe COM. 

Esempi
Il primo esempio crea un oggetto di sessione chiamato MyConnection usando il parametro ProgID. Il secondo esempio invece crea l’oggetto usando il parametro ClassID.


<OBJECT RUNAT=Server SCOPE=Session ID=MyConnection
PROGID="ADODB.Connection">
REM Object Script
</OBJECT>

<OBJECT RUNAT=Server SCOPE=Session ID=MyConnection
CLASSID="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
REM Object Script
</OBJECT>

Attenzione
Gli oggetti creati nel file Global.asa possono essere utilizzati da ogni script nell'applicazione.

Per esempio:
l’oggetto che qui viene creato nel file Global.asa può essere usato da qualunque script del progetto.

---GLOBAL.ASA---

<OBJECT RUNAT=Server SCOPE=Session ID=MyAd PROGID="MSWC.AdRotator">
</OBJECT>

Possiamo far riferimento all'oggetto MyAd in ogni pagina della applicazione.

---SOME.ASP---

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

Esempi di Global.asa
Ricordiamo che un’applicazione può avere soltanto un file Global.asa.

Esempio 1
Questo esempio illustra il modo in cui costruire uno script che obblighi gli utenti a visitare una determinata pagina , come prima pagina visitata. Se la pagina corrente ( all'interno dell'evento Session_OnStart ) è la pagina definita come pagina iniziale, non fa nulla altrimenti usa il metodo Response.Redirect per ridirezionare l'utente sulla home page desiderata.

<SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart
' Verifica che la prima pagina visitata dall'utente
' sia la home page da noi definita

' Sostituire startPage con il path
' della nostra Home Page

startPage = "/MyApp/StartHere.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")

if strcomp(currentPage,startPage,1) then
Response.Redirect(startPage)
end if
End Sub
</SCRIPT>

Attenzione:
Il precedente script funziona soltanto se il browser dell'utente supporta i cookies. E' necessario quindi informare l'utente nella HOME PAGE che il sito Web necessita dell'abilitazione dei cookies.

Tutti gli eventi che seguono il metodo Redirect nell'evento Session_OnStart non vengono eseguiti.

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
' Session initialization script
Response.Redirect "http:/server/app/StartHere.asp"
End sub
</SCRIPT>

Esempio 2
All'avvio dell'applicazione viene letto un file di testo contenente il valore con cui inizializzare la variabile globale Application("accessi") per il conteggio degli accessi al sito Web; all'inizio di ciascuna sessione utente il valore degli accessi viene incrementato, mentre alla terminazione dell'applicazione il valore aggiornato degli accessi verrà memorizzato nel file.

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Application_OnStart

'Inizializza la variabile per il conteggio del numero di accessi

'leggendo il valore memorizzato in un file di testo

Set FileObject = Server.CreateObject("Scripting.FileSystemObject")

Set NAccessiFile =FileObject.OpenTextFile("accessi.txt", 1 , FALSE , FALSE )

Application("accessi") = NAccessiFile.ReadLine

End Sub

</SCRIPT>

----------------------------


<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Application_OnEnd

'Sovrascrive il file "accessi.txt" con un file aggiornato

Set FileObject = Server.CreateObject("Scripting.FileSystemObject")

Set NAccessiFile =FileObject.CreateTextFile("accessi.txt", 1 , TRUE , FALSE )

NAccessiFile.WriteLine( Application("accessi"))

End Sub

</SCRIPT>

-------------------------------

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Session_OnStart

'Incrementa il numero di accessi

Application.lock

Application("accessi") = Application("accessi") + 1

Application.unlock

End Sub

</SCRIPT>

--------------------------------

<OBJECT RUNAT=Server SCOPE=Scope ID=Identifier {PROGID="progID"|CLASSID="ClassID"}>

</OBJECT>

Esempio 3
Con questo global.asa possiamo visualizzare il numero degli utenti collegati al nostro sito Web senza dover utilizzare nessun file testo. In Application_OnStart inizilizziamo il timeout di sessione e la variabile WhosOn che conta il numero di utenti online. In Sessione_OnStart incrementiamo WhosOn mentre quando l’utente termina la sua sessione ( Session_OnEnd ) la decrementiamo.

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Session.Timeout = 3

Application.Lock
Application("WhosOn") = 0
Application.UnLock
End Sub

Sub Session_OnStart
Application.Lock
Application("WhosOn") = Application("WhosOn") + 1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("WhosOn") = Application("WhosOn") - 1
Application.UnLock
End Sub
</SCRIPT>


Per visualizzare la variabile WhosOn possiamo inserire il seguente script nella pagina iniziale della nostra applicazione.

<%
response.write "Are Now " & Application("WhosOn") & " utenti in questa pagina."
%>

 

 

 




 


faq Indietro

 

Home | Chi Siamo | Contatti | Internet Provider | Software House | Active Web | Web Marketing | SMS | Realizzazioni | Preventivi | Supporto | Lavoro | Condizioni
RD Informatica - Str. Rupola 14 - 61122 Pesaro PU - Tel 0721 206238 Fax 0721 1835042 P.Iva 01241970415 - info@rdinformatica.com 
Estrattore Pagine Gialle
Applicativi asp
RD
Applicativi asp
Internet provider
Software House
Applicativi asp
SMS Web
Software SMS
Mailing Project