O arquivo Global.asa
O arquivo Global.asa é um arquivo opcional que pode conter declarações de objetos, variáveis e métodos que podem ser acessados por cada página em um aplicativo ASP.
Todos os scripts do navegador válidos (JavaScript, VBScript, JScript, PerlScript, etc.) pode ser usado dentro Global.asa.
O arquivo Global.asa pode conter apenas o seguinte:
- eventos de aplicativo
- eventos de sessão
- <object> declarações
- declarações TypeLibrary
- a directiva #include
Note: O arquivo Global.asa deve ser armazenada no diretório raiz do aplicativo ASP, e cada aplicação só pode ter um arquivo Global.asa.
Eventos em Global.asa
Em Global.asa você pode dizer o aplicativo e sessão de objetos o que fazer quando da aplicação / sessão começa e o que fazer quando a aplicação / sessão termina. O código para esta é colocado em manipuladores de eventos. O arquivo Global.asa pode conter quatro tipos de eventos:
Application_OnStart - Ocorre quando o primeiro usuário chama a primeira página em um aplicativo ASP. Este evento ocorre depois que o servidor Web é reiniciado ou após o arquivo Global.asa é editado. O "Session_OnStart" evento ocorre imediatamente após este evento.Session_OnStart - Este evento ocorre sempre que um novo usuário solicita a sua primeira página na aplicação ASP.
Session_OnEnd - Este evento ocorre cada vez que um utilizador termina a sessão. Um usuário-sessão termina depois que uma página não foi solicitado pelo usuário por um tempo especificado (by default this is 20 minutes) .
Application_OnEnd - Este evento ocorre depois que o usuário LAST terminou a sessão. Normalmente, este evento ocorre quando um servidor Web pára. Este procedimento é usado para limpar as configurações após a aplicação pára, como registros de apagar ou gravar informações em arquivos de texto.
Um arquivo Global.asa poderia ser algo como isto:
<script language="vbscript" runat="server">
sub Application_OnStart
' Note: Porque não podemos usar os delimitadores de script ASP (<% and %>) para inserir scripts no arquivo Global.asa, colocamos sub-rotinas dentro de um HTML <script> elemento.
<object> Declarações
É possível criar objetos com sessão ou espaço de aplicação em Global.asa usando o <object> tag.
Note: O <object> tag deve estar fora do <script> tag!
Sintaxe
<object runat="server" scope=" Parâmetro Descrição scope Define o escopo do objeto (either Session or Application) id Especifica um ID exclusivo para o objeto ProgID Um id associado a um ID de classe. O formato para ProgID é [Vendor.] Componente [.Version] De qualquer ProgID ou ClassID deve ser especificado.
ClassID Especifica uma identificação única para um objeto de classe COM. De qualquer ProgID ou ClassID deve ser especificado.
Exemplos
O primeiro exemplo cria um objeto de escopo de sessão chamado "MyAd" usando o parâmetro ProgID:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object> O segundo exemplo cria um objeto de escopo de aplicativo chamado "MyConnection" usando o parâmetro ClassID:
<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object> Os objetos declarados no arquivo Global.asa pode ser usado por qualquer script na aplicação:
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object>
You could reference the object "MyAd" from any page in the ASP application:
SOME .ASP FILE:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary declarações
Um TypeLibrary é um recipiente para o conteúdo de um ficheiro de DLL correspondente a um objecto COM. Ao incluir uma chamada para o TypeLibrary no arquivo Global.asa, as constantes do objeto COM pode ser acessado, e os erros podem ser melhor relatado pelo código ASP. Se seu aplicativo da Web se baseia em objetos COM que declararam tipos de dados em bibliotecas de tipos, você pode declarar as bibliotecas de tipos em Global.asa.
Sintaxe
<!--METADATA TYPE="TypeLib"
file=" Parâmetro Descrição file Especifica um caminho absoluto para uma biblioteca tipo. Ou o parâmetro do arquivo ou o parâmetro UUID é necessária
uuid Especifica um identificador exclusivo para a biblioteca de tipos. Ou o parâmetro do arquivo ou o parâmetro UUID é necessária
version Opcional. Usado para selecionar versão. Se a versão solicitada não for encontrado, então a versão mais recente é usado lcid Opcional. O identificador de localidade a ser usado para a biblioteca de tipos Os valores de erro
O servidor pode retornar uma das seguintes mensagens de erro:
Erro de código Descrição ASP 0222 Tipo inválido especificação biblioteca ASP 0223 biblioteca de tipo não encontrado ASP 0224 biblioteca de tipo não pode ser carregado ASP 0225 biblioteca tipo não pode ser enrolado
Note: tags de metadados podem aparecer em qualquer lugar no arquivo Global.asa (both inside and outside <script> tags) . No entanto, recomenda-se que tags de metadados aparecem perto do topo do arquivo Global.asa.
restrições
Restrições sobre o que você pode incluir no arquivo Global.asa:
- Você não pode exibir texto escrito no arquivo Global.asa. Este arquivo não pode exibir informações
- Você só pode usar objetos de servidores e aplicativos nas sub-rotinas Application_OnStart e Application_OnEnd. Na sub-rotina Session_OnEnd, você pode usar Server, Application e objetos de sessão. Na sub-rotina Session_OnStart você pode usar qualquer objeto embutido
Como usar as sub-rotinas
Global.asa é muitas vezes usado para inicializar variáveis.
O exemplo abaixo mostra como detectar o momento exato um visitante chega primeiro em um Web site. O tempo é armazenado em uma variável de sessão chamada "started" , e o valor da "started" variável pode ser acessada a partir de qualquer página ASP na aplicação:
<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script> Global.asa também pode ser usado para controlar o acesso página.
O exemplo abaixo mostra como redirecionar cada novo visitante para outra página, neste caso para uma página chamada "newpage.asp" :
<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script> E você pode incluir funções no arquivo Global.asa.
No exemplo abaixo, a sub-rotina Application_OnStart ocorre quando o servidor Web é iniciado. Em seguida, a sub-rotina Application_OnStart chama outra sub-rotina chamada "getcustomers" . O "getcustomers" sub-rotina abre um banco de dados e recupera um conjunto de registros do "customers" da tabela. O conjunto registro é atribuído a uma matriz, onde ele pode ser acessado a partir de qualquer página ASP sem consultar o banco de dados:
<script language="vbscript" runat="server">
sub Application_OnStart
getcustomers
end sub
sub getcustomers
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=conn.execute("select name from customers")
Application("customers")=rs.GetRows
rs.Close
conn.Close
end sub
</script>
Exemplo Global.ASA
Neste exemplo vamos criar um arquivo Global.asa que conta o número de visitantes atuais.
- O Application_OnStart define a variável de Aplicação "visitors" para 0 quando o servidor inicia
- A sub-rotina Session_OnStart adiciona um para as variáveis "visitors" cada vez que um novo visitante chega
- A sub-rotina Session_OnEnd subtrai um "visitors" cada vez que este sub-rotina é acionado
O arquivo Global.asa:
<script language="vbscript" runat="server">
Sub Application_OnStart
Application("visitors")=0
End Sub
Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub
</script> Para exibir o número de visitantes atuais em um arquivo ASP:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%>
online now!</p>
</body>
</html>