|
<< Application | Request.Form >>
|
modelo de objectos >
ficheiro global.asa |
|
|
. : : . ficheiro global.asa . : : .
|
O ficheiro global.asa
é, acima de tudo, uma tecnologia importante para certas soluções on-line, e
que é uma das armas das ASP em relação a outras linguagens semelhantes.
Quando entramos num site com servidor IIS, existem 4 fases distintas no seu
processamento:
1 - o primeiro utilizador entra e o
servidor fica alerta;
2 - o utilizador começa uma nova sessão, e essas sessões que ele cria
são as que utilizamos para variáveis globais, e para definir o tempo de
acção das mesmas.
3 - o utilizador sai do site e a sua sessão acaba;
4 - o último utilizador do site sai e o servidor Internet deixa de
estar alerta.
O ficheiro global.asa, é um
controlador dos acessos ao site. Este ficheiro tem apenas 4 funções
distintas: a primeira é aquela que é activada quando o site fica activo; a
segunda é activada por cada vez que entra um utilizador; a terceira é
activada por cada vez que sai um utilizador do site; e a quarta é activada
quando o site deixa de ter utilizadores. Desta maneira, podemos criar código
dentro de cada uma destas zonas para nosso benefício. Por exemplo, queres
que seja introduzido num ficheiro de texto o endereço IP de cada utilizador
que entra no site. Basta escrever dentro da segunda função do ficheiro
global.asa o código que cria essa linha no ficheiro de controlo, para
teres a certeza que cada acesso é registado. Ou se quiseres saber quanto
tempo cada utilizador passa em média no site, basta criares um registo de
tempo de entrada na segunda função, e um na terceira função, e mais tarde
fazeres DateDiff() para sabermos a média que cada utilizador gasta no
site.
O esquema de um ficheiro global.asa
é o seguinte:
|
<SCRIPT LANGUAGE="VBScript"
RUNAT="Server">
Sub Application_OnStart
'algum codigo
End Sub
Sub Session_OnStart
'algum codigo
End Sub
Sub Session_OnEnd
'algum codigo
End Sub
Sub Application_OnEnd
'algum codigo
End Sub
</SCRIPT> |
Notas:
1 - como deves ter reparado, no ficheiro global.asa
não se usam os delimitadores ASP <% e %>. Para inserir scripts neste
ficheiro, têm de se colocar as subrotinas dentro das etiquetas html <script>
e </script>;
2 - para que este ficheiro funcione, tem de ser colocado no
directório principal do site (em termos do explorador do windows, na raíz),
caso contrário não funcionará.
Para testares a potencialidade deste
ficheiro podes experimentar saber quantos utilizadores estão de momento no
site. Para isso basta criares uma variável que se incrementa no procedimento
Session_OnStart, e que se decrementa no procedimento Session_OnEnd.
Desta maneira se estiverem 4 utilizadores ao mesmo tempo no site a variável
será 4. Se um deles sair passará a ser 3 pois houve uma sessão que acabou.
Da mesma maneira, por cada utilizador que entre no site essa mesma variável
irá ser incrementada. Passando da teoria à prática, aqui está um exemplo do
ficheiro global.asa, que suportará o controlo dos acessos ao site:
|
<SCRIPT LANGUAGE="VBScript"
RUNAT ="Server">
Sub Application_OnStart
Session.Timeout = 3
Application.Lock
Application("utilizadores") = 0
Application.UnLock
End Sub
Sub Session_OnStart
Application.Lock
Application("utilizadores") = Application("utilizadores") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("utilizadores") = Application("utilizadores") - 1
Application.UnLock
End Sub
</SCRIPT> |
Agora, uma pequena explicação da
execução deste script:
1 - Em
Application_OnStart, defini o tempo que vai durar cada sessão. Se o
utilizador ficar inactivo durante 3 minutos, a função Session_OnEnd
activa-se e processa uma saída do site. De seguida tranquei a variável, de
maneira a que possa ser alterada sem perder os dados que já contém.
Inicializei a variável a zero, e destranquei a variável após esta ter sido
alterada.
2 - Em Session_OnStart, tranquei a variável,
incrementei o valor da variável, e destranquei a variável.
3 - Em Session_OnEnd, tranquei a variável,
decrementei o valor da variável, e destranquei a variável.
Para mostrares no browser o
resultado do ficheiro global.asa, podes usar o seguinte exemplo:
|
<html>
<head>
</head>
<body>
<p>
Existem neste momento <b> <%response.write(Application("utilizadores"))%>
</b> utilizadores on-line!
</p>
</body>
</html> |
A partir daqui, podes
pensar em fazer aplicações que respondam às tuas necessidades. Podes
testar o ficheiro global.asa no Personal Web Server que funciona na
perfeição, mas quando pensares em colocar o ficheiro global.asa no teu
servidor de internet, verifica primeiro se esse servidor suporta este
ficheiro. Até hoje, ainda não encontrei nenhum servidor gratuito que o
suportasse. Por isso procura, e se achares avisa-me!
<< Application | Request.Form >>
|