Los últimos tutoriales de desarrollo web
 

ASP El archivo Global.asa


El archivo Global.asa

El archivo Global.asa es un archivo opcional que puede contener declaraciones de objetos, variables y métodos que pueden ser accedidos por cada página en una aplicación ASP.

Todas las secuencias de comandos del navegador válidos (JavaScript, VBScript, JScript, PerlScript, etc.) se pueden utilizar dentro Global.asa.

El archivo Global.asa puede contener solamente la siguiente:

  • Los eventos de aplicación
  • eventos de sesión
  • <OBJECT> declaraciones
  • declaraciones TypeLibrary
  • la directiva # include

Note: El archivo Global.asa debe ser almacenado en el directorio raíz de la aplicación ASP, y cada aplicación sólo puede tener un archivo Global.asa.


Eventos en Global.asa

En Global.asa puede decirle a la aplicación y sesión de objetos qué hacer cuando la aplicación / sesión se inicia y qué hacer cuando finaliza la aplicación / sesión. El código de este se coloca en los controladores de eventos. El archivo Global.asa puede contener cuatro tipos de eventos:

Application_OnStart - Ocurre cuando el primer usuario llama a la primera página de una aplicación ASP. Este evento se produce después de que el servidor Web se reinicia o después del archivo Global.asa se edita. El "Session_OnStart" evento se produce inmediatamente después de este evento.

Session_OnStart - Este evento se produce cada vez que un nuevo usuario solicita su primera página de la aplicación ASP.

Session_OnEnd - Este evento se produce cada vez que un usuario termina una sesión. Un usuario termina la sesión después de una página no ha sido solicitado por el usuario durante un tiempo especificado (by default this is 20 minutes) .

Application_OnEnd - Este evento se produce después de que el último usuario ha terminado la sesión. Normalmente, este evento se produce cuando un servidor Web se detiene. Este procedimiento se utiliza para limpiar la configuración después de la aplicación se detiene, al igual que los registros de borrado o escribir información en archivos de texto.

Un archivo global.asa podría ser algo como esto:

<script language="vbscript" runat="server">

sub Application_OnStart
' Note: Debido a que no podemos utilizar los delimitadores de secuencia de comandos ASP (<% and %>) para insertar secuencias de comandos en el archivo Global.asa, ponemos subrutinas dentro de un HTML <script> elemento.


<OBJECT> Declaraciones

Es posible crear objetos con sesión o alcance de uso en Global.asa utilizando el <object> tag.

Note: La <object> etiqueta debe estar fuera de la <script> etiqueta!

Sintaxis

<object runat="server" scope=" Parámetro Descripción scope Establece el ámbito del objeto (either Session or Application) id Especifica un identificador único para el objeto ProgID Un identificador asociado con un identificador de clase. El formato de identificador de programa es [Vendor.] Componente [.Versión]

De cualquier identificador de programa o ClassID deben especificarse.

ClassID Especifica un ID exclusivo para un objeto de clase COM.

De cualquier identificador de programa o ClassID deben especificarse.

Ejemplos

El primer ejemplo se crea un objeto de ámbito de sesión llamado "MyAd" mediante el parámetro identificador de programa:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

El segundo ejemplo se crea un objeto de alcance aplicación denominada "MyConnection" mediante el parámetro ClassID:

<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object>

Los objetos declarados en el archivo Global.asa puede ser utilizado por cualquier secuencia de comandos en la aplicación:

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")%>

Declaraciones TypeLibrary

A TypeLibrary es un contenedor para el contenido de un archivo DLL correspondiente a un objeto COM. Al incluir una llamada a la TypeLibrary en el archivo Global.asa, las constantes del objeto COM se puede acceder, y los errores pueden ser mejor informados por el código ASP. Si la aplicación Web se basa en objetos COM que han declarado los tipos de datos en las bibliotecas de tipos, se puede declarar las bibliotecas de tipos en Global.asa.

Sintaxis

<!--METADATA TYPE="TypeLib"
file=" Parámetro Descripción file Especifica una ruta absoluta a una biblioteca de tipos.

O bien se requiere el parámetro de archivo o el parámetro uuid

uuid Especifica un identificador único para la biblioteca de tipos.

O bien se requiere el parámetro de archivo o el parámetro uuid

version Opcional. Se utiliza para seleccionar la versión. Si no se encuentra la versión solicitada, a continuación, se utiliza la versión más reciente lcid Opcional. El identificador de configuración regional que se utilizará para la biblioteca de tipos

Los valores de error

El servidor puede devolver uno de los mensajes de error siguientes:

Código de error Descripción
ASP 0222 tipo no válido especificación biblioteca
ASP 0223 biblioteca de tipos no encontrado
ASP 0224 biblioteca de tipos no se puede cargar
ASP 0225 biblioteca de tipos no puede ser envuelto

Note: etiquetas de metadatos pueden aparecer en cualquier parte del archivo Global.asa (both inside and outside <script> tags) . Sin embargo, se recomienda que las etiquetas de metadatos aparecen cerca de la parte superior del archivo Global.asa.


restricciones

Restricciones sobre lo que puede incluir en el archivo Global.asa:

  • No se puede mostrar el texto escrito en el archivo Global.asa. Este archivo no se puede mostrar información
  • Sólo se puede utilizar objetos de servidores y aplicaciones en las subrutinas Application_OnStart y Application_OnEnd. En la subrutina Session_OnEnd, puede utilizar servidores, aplicaciones y objetos Session. En la subrutina Session_OnStart puede utilizar cualquier objeto incorporado

Cómo utilizar las subrutinas

Global.asa se utiliza a menudo para inicializar variables.

El siguiente ejemplo muestra cómo detectar el momento exacto en que un visitante llega por primera vez en un sitio Web. El tiempo se almacena en una variable de sesión llamada "started" , y el valor de la "started" variable se puede acceder desde cualquier página ASP en la aplicación:

<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script>

Global.asa también se puede utilizar para controlar el acceso página.

El siguiente ejemplo muestra cómo redirigir cada nuevo visitante a otra página, en este caso a una página llamada "newpage.asp" :

<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>

Y puede incluir funciones en el archivo Global.asa.

En el siguiente ejemplo la subrutina Application_OnStart se produce cuando el servidor Web se inicia. A continuación, la subrutina Application_OnStart llama a otra subrutina llamada "getcustomers" . El "getcustomers" subrutina se abre una base de datos y recupera un conjunto de registros de la "customers" tabla. El conjunto de registros se asigna a una matriz, en la que se puede acceder desde cualquier página ASP sin consultar la base de datos:

<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>

Ejemplo Global.asa

En este ejemplo vamos a crear un archivo Global.asa que cuenta el número de visitantes actuales.

  • El Application_OnStart establece la variable de aplicación "visitors" a 0 cuando se inicia el servidor
  • La subrutina Session_OnStart añade uno a la variable "visitors" cada vez que llega un nuevo visitante
  • La subrutina Session_OnEnd resta uno de "visitors" cada vez que se activa esta subrutina

El archivo 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 mostrar el número de visitantes actuales en un archivo ASP:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%> online now!</p>
</body>
</html>