Se il vostro sito web ha un traffico abbastanza elevato, è inutile far ricreare ogni volta tutto il procedimento spiegato in precedenza. Basta sfruttare il global.asa nel seguente modo:
01: <SCRIPT LANGUAGE="VBScript" RUNAT="Server">
02:
03: Sub Application_OnStart
04: 'Questo evento rileva il riavviarsi del server
05:
06: ' Parti Modificabili
07: dim dbCode 'Codice di accesso al mySql
08: dbCode="innovatel"
09: dim dbUser 'Nome di accesso al mySql
10: dbuser="innovatel"
11: dim dbServer 'Nome del server
12: dbServer=""
13: dim dbName 'Nome del database
14: dbname="messaggeria"
15: dim dbDriver 'Tipo di driver
16: dbDriver="MySQL"
17:
18: 'Parti NON Modificabili
19: if trim(dbServer)<>"" then
20: dbServer = "server="&dbServer&";"
21: end if
22: if trim(dbName)<>"" then
23: dbName = "db="&dbName&";"
24: end if
25: if trim(dbDriver)<>"" then
26: dbDriver = "driver="&dbDriver&";"
27: end if
28: if trim(dbUser)<>"" then
29: dbUser = "uid="&dbUser&";"
30: end if
31: if trim(dbCode)<>"" then
32: dbCode = "pwd="&dbCode&";"
33: end if
34:
35: 'Preparo la stringa di connessione
36: dbConnessione = trim(dbServer) & trim(dbName)
37: dbConnessione = dbConnessione & trim(dbDriver)
38: dbConnessione = dbConnessione & trim(dbUser)
39: dbConnessione = dbConnessione & trim(dbCode)
40:
41: 'Creo la variabile di tipo application
42: application("dbConnessione") = dbConnessione
43:
44: End Sub
45:
46: Sub Application_OnEnd
47: 'Questo evento rileva lo "spegnersi" del server
48: application("dbConnessione") = Null
49: End Sub
50:
51: Sub Session_OnStart
52: 'Questo evento rileva la attivazione di una sessione utente
53: End Sub
54:
55: Sub Session_OnEnd
56: 'Questo evento rileva la disattivazione di una sessione utente
57: End Sub
58:
59: </SCRIPT>
Quando si viene a generare l'evento Application_OnStart viene effettuato tutto il meccanismo già spiegato, ma con una piccola differenza. Nella riga 42 viene inserita va variabile Application:
41: 'Creo la variabile di tipo application
42: application("dbConnessione") = dbConnessione
nella quale viene inserito il risultato dell'elaborazione. Ora, basta che nelle pagine asp si chiami la variabile application("dbConnessione") quando si desidera acceder al database ed il gioco è fatto. L'unico svantaggio di questo metodo è dato dal vantaggio offerto dalle variabili di tipo Application. La loro visibilità tra tutti gli utenti connessi al sito web, appesantisce il server. E' per questo motivo che il loro uso deve esser fortemente motivato. Personalmente le utilizzo molto poco e cerco sempre una scappatoia, ma ci sono volte in cui è impossibile farne a meno. Il classico esempio sono gli utenti connessi sia quanti che quali.
Se utilizzate questo metodo, nel file config.asp lasciate solo le seguenti
righe:
01: <%
02: 'Evito la memorizzazione in cache/proxy della pagina [Non modificabile]
03: response.Expires = -1500
04: response.AddHeader "PRAGMA", "NO-CACHE"
05: response.AddHeader "CACHE-CONTROL", "PRIVATE"
06: response.CacheControl = "PRIVATE"
07:
08: %>
Per maggiori informazioni sull'utilizzo del global.asa, si veda un mio articolo nella sezione Articoli Asp3.0.