|
|
|

|

|
Dicas
|

|
ASP - Active Server Page (Miscelâneas)
|
|
 |
Título da Dica: Quantas pessoas estão no seu site neste momento?
|
 |
|
|
Postada em 23/10/2003 por ^HEAVY-METAL^
Pessoalmente acho este exemplo bastante acessível, e mesmo que nunca tenha usado o ficheiro global.asa, não se preocupe. Se não tiver este ficheiro ponha o código referente ao mesmo num ficheiro global.asa na root do site que estiver a programar ( ex. www.osite.com/global.asa ). Tudo o que vamos precisar é de manter uma variável actualizada controlando os inícios e as perdas de sessão que vão acontecendo no site. quando uma sessão começa vamos incrementar a variável, quando uma sessão expira, decrementamos a mesma.
Explicando as variáveis Application : As variáveis application trabalham semelhantemente como as variáveis session excepto no facto de os valores das variáveis Application serem os mesmos para todos os utilizadores que tiverem a aceder ao site, enquanto as variáveis Session diferenciarem de utilizador para utilizador ( de sessão para sessão ). Uma instancia de cada sessão é criada para cada utilizador. Existe apenas uma instância para todas as variáveis Application quandoo servidor começa a laborar. Espero que com o exemplo fique a perceber melhor.
Ficheiro: Global.asa
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart ' Sub Application_OnStart é a função que dispara ' cada vez que o servidor internet começa.
' Aqui vamos validar o tempo que ahcamos que o utilizador ' está válido on-line. (se não houver actividade por parte ' do mesmo em x minutos, é feito um log off, apagando-se ' a sua instância da variável de sessão) Session.Timeout = 3
' O método .Lock tranca a variável Applicationpara que possamos ' actualizar a mesma. Se não a trancarmos a mesma não será ' alterada, neste caso a variável "QuantosAgora" Application.Lock
' Vamos começar a veriável em 0 Application("QuantosAgora") = 0
' Destrancamos agora Application.UnLock End Sub Sub Session_OnStart ' Sub Session_OnStart é a função que dispara ' por cada vez que um utilizador entra no site
' Aqui vamos então incrementar a nossa variável Application.Lock Application("QuantosAgora") = Application("QuantosAgora") + 1 Application.UnLock End Sub Sub Session_OnEnd ' Sub Session_OnEnd é a função que desperta ' por cada vez que um utilizador sai, é definido n ' minutos depois do utilizador sair ou estiver inactivo. ' Estes n minutos são definidos por Session.Timeout em ' Sub Application_OnStart
' então,quanto um utilizador é contado como menos um ' acesso simultâneo e por isso vamos decrementar a variável ' "QuantosAgora" Application.Lock Application("QuantosAgora") = Application("QuantosAgora") - 1 Application.UnLock End Sub </SCRIPT>
Ficheiro: main.asp Depois de muita pesquisa :-),... fz este código que mostra o numero de utilizadores do momento, pode ser um qualquer ficheiro ASP em qualquer zona do site...
<% response.write "Estão agora " & Application("QuantosAgora") & " utilizadores." %>
T+,
|
|
|
|

|