|
Analogamente all'oggetto Session, Application permette di memorizzare informazioni che possono essere riutilizzate ad ogni pagina. Quest'ultimo va però un po' più in là: le informazioni contenuto in esso possono essere utilizzate ad ogni istante e sono in comune ad ogni sessione. In pratica un'informazione salvata nell'oggetto application durante lo svolgimento di una pagina per l'utente X, potrà essere accessibile durante l'esecuzione di una pagina per l'utente Y.
Le informazioni qui immagazzinate esisteranno per tutta la durata dell'applicazione ASP. Rimarranno vive, in pratica, fino a quando il Web Server è in esecuzione o fino a quando la macchina non viene riavviata.
La sintassi per l'utilizzo di tale oggetto è uguale in tutto per tutto all'utilizzo dell'oggetto Session:
Una variabile viene create nella seguente maniera:
Application("valore") = mioValore
Mentre un valore viene ritornato nel seguente modo:
sVariabile = cStr(Application("valore"))
Come già accennato, il casting non manca mai.
Quando si scrivono valori nell'oggetto Application bisogna far molta attenzione alla scrittura contemporanea dello stesso valore. Mettiamo caso che in un sito molto affollato, cinque persone cerchino di accedere allo stesso momento una pagina che aggiorna un valore memorizzato in Application (per esempio un contatore di pagine visualizzate). In tale situazione se un utente cerca di aggiornare il valore nello stesso preciso momento in cui un altro utente sta provando a fare la stessa cosa, un errore sarà generato. Non è infatti possibile accedere ad un valore in application allo stesso istante. L'unica soluzione possibile è di utilizzare i metodi lock ed unlock: il primo metodo garantisce all'utente un controllo esclusivo dell'oggetto application. Se altri utenti cercheranno di accedere all'oggetto, essi dovranno aspettare che l'utente esclusivo abbia finito di effettuare i suoi cambiamenti e che abbia chiamato il metodo unlock che, ovviamente, rilascia l'oggetto.
Come esempio pratico vi presento un semplice contatore di pagine visitate. Per controllare il suo effettivo funzionamento attraverso le sessioni vi consiglio di chiudere e riaprire la finestra di
Internet Explorer ogni volta che accedete la pagina. Chiudendo la finestra, infatti, la sessione viene uccisa e tutte le variabili associate eliminate. Il contatore, in ogni modo, continuerà ad aumentare.
<% Option Explicit
Dim nContatoreApplication.Lock
nContatore = Cint(Application("visite"))
nContatore = nContatore + 1
Application("visite") = nContatore
Application.Unlock
%>
<html>
<head>
<title>Application 1</title>
</head>
<body>Numero di pagine visitate :
<%= nContatore %>
<br>
</body>
</html> |
Listato 10 - Salvate la pagina con il nome
Application.asp
Lezione
successiva =>
Torna
all'indice!
|