El archivo global.asa es un archivo opcional. Los usuarios pueden declarar objetos de sesión y de todo la aplicación en el script de evento especificado. Hoy, el editor del canal de tecnología Fooxin ha recopilado y resuelto la información relevante. ¡Los amigos interesados pueden ir al siguiente artículo para obtener más información!
Todos sabemos que .ASA es el nombre del sufijo del archivo. Es el acrónimo de la aplicación Active Server.
En realidad, es un archivo opcional en el que el escritor del programa puede especificar scripts de eventos y declarar objetos con ámbitos de sesión y aplicación. El contenido de este archivo no se usa para mostrar al usuario, sino para almacenar información y objetos de eventos utilizados a nivel mundial por la aplicación. Este archivo debe almacenarse en el directorio raíz de la aplicación. Cada aplicación solo puede tener un archivo global.asa.
La idea errónea más común sobre los archivos globales.ASA es que puede usarse como una biblioteca para funciones de uso general y subrutinas. El archivo global.asa solo se puede usar para crear referencias y capturar nuevas empresas de objetos, así como finales de objetos de aplicación y objetos de sesión.
Se accede al archivo global.asa en función de los eventos a nivel de sesión y se llama en los siguientes tres casos:
El formato de archivo estándar de Global.asa es el siguiente:
<Script language = "vbscript" runat = "servidor"> sub aplicación_onstart 'Application_onStart END end sub subsession_onstart La primera vez que un cliente accede a la página de inicio de la aplicación' session_onstart ejecutar ejecutar subsession_onend 'session_onend ejecutar sessession_onend' session_onend ejecutar end subpolics_onend 'APLICACIÓN END END SUB SUB SUB SIEMBRE SIEB
1. Session_onStart
Primero veamos un código que controla a los usuarios para ingresar a la página:
1. Global.asa (ubicado en el directorio raíz del directorio virtual depurado)
<Script language = "vbscript" runat = "servidor"> subsession_onstart 'siempre que el usuario inicie sesión en este sitio por primera vez, saltará a la página de inicio.
Luego, debuge cualquier archivo en el directorio virtual actual, y encontrará que todas las páginas saltan a http://www.webjx.com/ <
A través de este ejemplo de "entrada forzada en una determinada página", se puede imaginar que es muy necesario cuando se debe seguir la página de inicio.
Continuemos observando los eventos session_onstart y session_onend con un ejemplo de "número de usuarios en línea"
2. Session_onend
2. Global.asa (ubicado en el directorio raíz del directorio virtual de depuración)
<Script language = vBscript runat = Server> Sub Application_onStart 'El valor inicial es 0 Application ("en línea") = 0 end sub subsission_onstart' Un acceso de usuario agrega 1 Application.lock Application ("en línea") = Aplicación ("En línea") + 1 Application.unlock End Sub Subsession_onend 'El proceso de un usuario de un usuario, cuenta abajo por 1 (PS si no hay un programa de eventos, el programa de acceso de la página está ejecutado.)))) Aplicación ("Llock (" en línea "). Aplicación ("en línea") - 1 Aplicación. Unlock End Sub </script>3. En línea.asp
<%if request.queryString ("logrout") = "true" y luego session.abandon () respuesta.end end if%> actualmente hay <%= aplicación ("en línea")%> en línea <a href = "en línea.asp? logrout = true"> salida </a>Encuentra que solo hay una aplicación ("en línea") en la página, y también se hace referencia. Entonces, ¿de dónde viene su valor? Esta es la clave del archivo global.asa. Puede abrir Windows en esta máquina, cerrar Windows o salir de depuración de los dos métodos.
3. Continúa refinándolo
Encontrará que los efectos de cerrar la ventana después de la conexión "Salir" son diferentes de cerrar la ventana directamente. Debido a que la sesión existe en el tiempo, al cerrar la ventana directamente, el evento Session_onend no se puede activar, entonces, ¿cómo se puede realizar esta idea casi imposible?
Como todos sabemos, cuando una página web está cerrada, puede ir acompañado de un evento de Onunload. Entonces, mientras se pueda ejecutar la Onunload, ¿no es todo lo que necesitamos? Decir menos tonterías, modificar en línea.asp
<%if request.QueryString ("logrout") = "true" entonces session.abandon () respuesta.end end if%> <body onUnload = javaScript: window.open ("exit.asp")> Actualmente hay <%= aplicación ("en línea")%> en línea <a href = "en línea.asp? logOut = true"> exit </a>Tenga en cuenta que cuando en línea.asp está onUnload, Exit.asp se abrirá. Luego, simplemente establezca session.abandon () en Exit.asp y no está bien.
salir.asp
<%session.abandon ()%> <script> self.close () </script>
Por supuesto, se agregó un script que se cerró inmediatamente después de que se registró la sesión. Ahora, solo una aplicación web con estadísticas en línea es suficiente.
4. Estudio en profundidad de Global.asa
De la depuración anterior, aprenderá de un ejemplo y lo aplicará a otros y definitivamente hará una pregunta: ¿cómo controlar el número de usuarios registrados en línea? Leemos los siguientes documentos uno por uno:
4. Global.asa (ubicado en el directorio raíz del directorio virtual depurado)
<Script language = "vbscript" runat = "servidor"> sub aplicación_onstart aplicación ("en línea") = 0 final sub subsession_onstart end subsession_onend if session.contents ("pasar") luego 'determinar si es el usuario inicioTenga en cuenta que el bloque session_onstart en este global.asa no causa ningún evento.
Porque una vez que un usuario accede al servidor, independientemente de si el usuario inicia sesión o no, se generará un evento ONStart. Ahora todo lo que necesita es iniciar sesión en el usuario en línea, para que no pueda agregar 1 al evento ONStart.
Además, debido a que el evento ONEND se generará independientemente de si la sesión del usuario iniciado ha terminado (si un visitante visita el servidor pero no se inicia sesión, el evento ONEND también se generará después de que finalice la sesión), por lo que una declaración IF se usa en el evento Session_onend para determinar si es el evento ONEND del usuario iniciado. Si es así, el número de personas en línea se reducirá en 1.
Y vale la pena señalar que el uso de session.contents ("pase") se debe a que el uso de objetos de sesión está prohibido en el evento ONEND, pero la variable de sesión se puede llamar utilizando una colección de objetos de sesión. En otras palabras, no puede escribir Session ("Pase") directamente, pero necesita escribir session.contents ("pasar").
5. Iniciar sesión.asp
Miembro actualmente registrado <%= aplicación ("en línea")%>.
<a href = "login.asp? logOut = true"> salir </a> <%%%> <form de action = "login.asp" método = "post"> <input type = "text" name = "name"> <br> <input type = "contraseña" name = "pwd"> <br> type de entrada = "enviar" name = "enviar" valor = "subsit"> <%end if End
Simplemente detectar que cuando se genera el nombre de CNBruce y la contraseña, se genera una sesión ("Pase") = True, que se juzga en Global.asa.
5. Continúa usando tu imaginación
Piénselo, piénsalo de nuevo. No es suficiente contar cuántas personas están en línea, y también requiere juzgar el estado en línea del usuario.
Puedes imaginar el método básico. Cuando el usuario inicia sesión, configure el en línea en 1 en Login.asp (cargue si hay una base de datos), pero cuando el usuario esté fuera de línea, configure el en línea en 0. Para mejorarlo, debe modificar el evento session_onend y establecer el en línea en 0 en el evento (el mismo valor se cargará) ... ...
Por supuesto, Global.asa es mucho más que eso. Pero no tenemos que apresurarnos para dominarlo todo ahora. Cuando entramos en contacto con la base de datos, volveremos a mirarlo y continuaremos estudiando el archivo. Creo que para entonces definitivamente nos daremos cuenta mucho. Entonces, entendamos a lo anterior a fondo primero.
Espero que a través de este artículo analice brevemente el uso de los archivos globales de ASP, lo que puede brindarle más ayuda. ¡Más conocimientos técnicos estarán disponibles en la red de canales de tecnología Wuxin!