Application object
In de les over variabelen hebben we kunnen zien hoe
we variabelen binnen een pagina kunnen gebruiken. Helaas zijn die variabelen niet buiten
een pagina beschikbaar en dus niet geschikt om gegevens te delen tussen pagina's.
Als we dat willen, dan moeten we gebruik maken van het Application
object. Dit object maakt het mogelijk gegevens te delen tussen alle pagina's in een
(IIS) applicatie.
Met het Application object kunnen we bijvoorbeeld een teller maken
die telt hoe vaak een pagina bezocht is, maar ook kunnen we bijvoorbeeld gegevens over de
database koppeling, of andere waarden die we door de hele site nodig hebben, opslaan.
We laten zien hoe een teller eruit ziet (ververs de pagina om het resultaat te zien):
appvar1.asp
<%
Option Explicit
%>
<HTML>
<BODY>
<%
Application("Teller") = Application("Teller") + 1
Response.Write Application("Teller")
%>
</BODY>
</HTML>
Stel dat de bovenstaande code tegelijk door twee verschillende mensen bekeken zou worden. Doordat ASP
niet alle scripts meteen helemaal afmaakt, maar soms de uitvoering kan stoppen om even een ander script
(deels) uit te voeren, zou het zo kunnen zijn dat de waarde die je ziet niet klopt. De waarde zou
namelijk opgehoogd kunnen zijn, daarna opgehoogd kunnen zijn door de andere gebruiker en daarna pas
in jouw browser geschreven worden. Nou is dit bij een teller niet zo belangrijk, maar het kan zijn dat
het wel om informatie gaat die belangrijk is. In dat geval kun je de Lock
methode gebruiken om ervoor te zorgen dat er geen andere gebruikers zijn die tegelijk toegang krijgen
tot de waardes in het Application object. Omdat dit vertragend werkt moet
dit alleen gedaan worden als het nodig is, waarna zo snel mogelijk de Unlock
methode wordt gebruikt:
appvar2.asp
<%
Option Explicit
%>
<HTML>
<BODY>
<%
Application.Lock
Application("Teller") = Application("Teller") + 1
Response.Write Application("Teller")
Application.Unlock
%>
</BODY>
</HTML>
Het Application object heeft nog meer mogelijkheden. Gezien deze erg
weinig gebruikt worden, zijn die mogelijkheden geen onderdeel van deze lessen.
|