Il Global.asa impariamo a conoscerlo

3 Lug

Out Of Date Warning

Questo post è stato pubblicato più di 2 anni fa (il 3 luglio 2011). Le idee vanno avanti velocemente, le prospettive cambiano quindi i contenuti potrebbero non essere aggiornati. Ti prego di tenere in considerazione questo, e di verificare le informazioni tecniche presenti nell'articolo prima di farne affidamento per i tuoi scopi.

Oggi facciamo la conoscenza del file Global.asa, un file opzionale che può contenere dichiarazioni di oggetti, variabili e metodi. Quando parliamo di Global.asa dobbiamo far riferimento all’intera applicazione Web intesa come l’insieme di file residenti sia nella root principale, sia nelle soubdirectory del nostro Web Server. Il file affinchè funzioni e venga preso in considerazione deve risiedere nella directory root del Server Web che ospita l’applicazione, in pratica dev’essere memorizzato nella directory principale della nostra applicazione ASP. Ogni applicazione potrà avere un unico e solo file Global.asa, il quale potrà contenere codice scritto non necessariamente in VBscript ma anche in un qualsiasi altro linguaggio di scripting supportato (JavaScript, JScript, PerlScript, etc..)

Il Global.asa può contenere solo le seguenti sezioni:

  • Eventi Application
  • Eventi Session
  • Dichiarazioni di oggetti (<object>)
  • Dichiarazioni TypeLibrary

Gli eventi nel Global.asa

Il Global.asa è particolarmente indicato per tutte quelle attività di inizializzazione di una applicazione come creare istanze di oggetti, inizializzare e settare variabili etc.. Tuttavia la funzione maggiormente interessante (e quella sulla quale noi ci soffermeremo) sono gli eventi, che il file può contenere.
In particolare il file potrà contenere quattro eventi, due a livello di applicazione e due a livello di sessione:

  • Application_OnStart – L’evento si verifica quando al riavvio del Web Server o dopo una modifica del global.asa stesso, un utente accede per la prima volta in una pagina dell’applicazione.
  • Session_OnStart – Questo evento si verifica ogni volta che un utente si collega per la prima volta alla nostra applicazione, quindi quando il server genera una nuova sessione. Risulta particolarmente indicato per definire tutte le variabili di sessione che saranno utilizzate all’interno dell’applicazione.
  • Session_OnEnd – L’evento avviene tutte le volte in cui un utente termina una sessione, che di solito corrisponde al tempo di timeout della sessione stessa (default 20 min.).
  • Application_OnEnd – Questo evento si verifica quando il Web Server viene per un qualsiasi motivo arrestato.
  • Vediamo ora la sintassi tipica di un file global.asa ricordando che non possiamo usare i delimitatori di script asp (<% e %>) ma dobbiamo inserire le subroutines all’interno dei tag <SCRIPT> e </SCRIPT>

    Qualche esempio

    Esempio 1
    Partiamo con qualcosa di facile, in questo esempio, voglio memorizzare il momento in cui un utente entra nella mia applicazione, tale info la potrò utilizzare in una qualsiasi pagina del sito visto che verrà memorizzata in una variabile di sessione (inizio). Quale evento utilizzerò?

    Esempio 2
    Altro semplice esempio, supponiamo che tutte le volte che un utente accede per la prima volta vogliamo reinderizzarlo in una determinate pagina:

    Esempio 3
    Con questo esempio andrò a visualizzare il numero di utenti attualmente connessi sul mio sito, per ottenere il risultato utilizzerò tre eventi: Application_OnStart, Session_OnStart e Session_OnEnd.
    All’avvio dell’applicazione andrò ad inizializzare a 0 il numero degli utenti collegati, mentre ogni volta che un utente si collega aumenterò il numero di 1 mentre al termine della sessione lo diminuirò di 1. Vediamo:

    Esempio 4
    L’ultimo esempio che vediamo è una sorta di contatore visite, in pratica mi appoggerò su un file di testo per memorizzare il numero dei visitatori (se uno vuole può anche farlo attraverso DB). L’evento Application_OnStart lo utilizzerò per leggere il numero dei visitatori dal file txt ed assegnarlo ad una var Application. Session_OnStart mi servirà per aumentare di 1 il numero dei visitatori, mentre nell’evento Application_OnEnd andrò ad aggiornare il file di testo sovrascrivendo il nuovo numero:

    Conclusioni

    Il Global.asa non è un file comune, difatti a differenza degli altri file web non deve essere richiamato per essere eseguito, ma viene eseguito in maniera autonoma ogni volta che un browser richiama un file all’interno della nostra applicazione. Bisogna ricordare infine che il file non è obbligatorio, si può tranquillamente omettere e la nostra applicazione funzionerà perfettamente. Spesso il suo utilizzo viene trascurato (soprattutto da programmatori neofiti), tuttavia può risultare davvero molto utile se non indispensabile in determinate circostanze.

    Risorse

    http://msdn.microsoft.com/en-us/library/ms525316(VS.90).aspx

    http://www.w3schools.com/asp/asp_globalasa.asp

Un Commento su “Il Global.asa impariamo a conoscerlo”

  1. cardaddy 26 luglio 2011 at 11:21 #

    Many thanks for your article! Frankly speaking I have never come across anything that informative.

Lascia un commento