En primer lugar, echemos un vistazo al proceso de la ejecución de la página ASP
1. IIS encuentra un archivo ASP y envíelo al procesamiento del motor ASP (generalmente ASP.DLL).
2. El motor abre este archivo ASP y encuentra el contenido entre <%y%>. El motor solo analiza el contenido en el bloque de script, y el otro contenido se inserta entre los bloques de script como caracteres sin sentido. Es necesario explicar que, de hecho, el contenido del análisis es más que eso. Si lee muchos programas, también sabrá que algunos atributos Runat están marcados como el objeto <S Object> del servidor.
3. El script en el bloque de script del motor.
<%
Dim I
Para i = 1 a 5
%> ¡Hola mundo!
< % Siguiente %>
El motor no analiza estos bloques de script por separado, pero comete errores de sintaxis en ambos bloques de scripts. Por lo tanto, obtenemos las siguientes conclusiones: no todos los scripts no servidores se enviarán al cliente. El servidor no debe preocuparse por la ejecución del script del cliente, pero puede generar diferentes scripts del cliente a través del script del servidor.
4. El motor final genera un flujo de texto, o el resultado de la ejecución del script. El navegador del cliente se muestra en la página.
< %... %> y <script runat = server> ... </script>
Son los scripts de servidor y se procesan y ejecutan al mismo tiempo. Cuando se ejecutan, eran en su conjunto.
< %... %> y <script language = ...> ... </script>
El primero es el script del servidor, el segundo es el script del cliente. El primero se ejecuta primero, y el segundo se ejecuta.
De hecho, el script de los dos puede ejecutarse al mismo tiempo, pero el espacio es diferente. El primero debe ser ejecutado lógicamente por adelantado. Al mismo tiempo, también tenemos una conclusión: en la ejecución de la misma página, el script del cliente no puede volver a ser devuelto al script del servidor de todos modos, es decir, el cliente navega por su libro de mensajes y envía un nuevo mensaje o cualquier script del cliente. Valor de adquisición Es imposible ser procesado en la misma respuesta del servidor.
Llamar a los componentes
Tenga en cuenta que los scripts del servidor y los scripts del cliente son de forma natural.
Si se usa XMLHTTP para la página web de captura del servidor (como la recolección), se creará en el script del servidor. Cliente.
ADODB.Connection Component se utiliza para acceder a la base de datos. es sin duda que está en el cliente del cliente creado en el script final.
En resumen, las cosas contradictorias y cada lado tienen sus propias características. Las diferentes cosas tienen diferentes contradicciones; Entender no mirar ...). Este principio requiere que nos adhiramos a los principios de análisis específicos de temas específicos. Oposición para usar un método para resolver las contradicciones de diferentes cosas. Se abre una llave, qué tipo de montaña canta y qué tipo de canción es la verdad.
El objeto de creación de script VBScript de servidor usa el método Server.CreateObject (ClassName).
Error típico
<%
Función tsize (b)
'Esta es mi función personalizada
Tsize = China
función final
%>
<A href = javaScript: <%tsize ('variable')%>> haga clic aquí para usar mi función de definición </a>
Análisis de errores:
Confunde la diferencia entre el script del servidor y el script del cliente. Durante la ejecución real, encontraremos que el cliente no recibe ningún código como TSIZE, porque TSIZE es un programa en el servidor, y después de que se procese el motor (tenga en cuenta que el procesamiento del motor de la función se requiere exclusivamente para el servidor Script, no desaparecerá, y era imposible desempeñar un papel en el cliente. Es decir, el script del cliente no puede llamar directamente a la función de scripts de servidor.
De hecho, este programa está mal con la gramática. Bueno, cambie a <%= tsize (variable)%> no hay error gramatical en el script de servidor. : JavaScript: China, China, no se puede ejecutar.
El efecto del script del servidor en el script del cliente
Como se mencionó anteriormente, el script del servidor se ejecuta lógicamente en el script del cliente por adelantado, por lo que dicho código es factible:
<%
Dim I
Para i = 1 a 5
Response.write <script type = text/javaScript> _
& Alerta ('¡Hola mundo! & I &') </script>
Próximo
%>
Acerca de la ejecución de respuesta. Redirect y JavaScript
Tenga en cuenta que la escritura del siguiente código es incorrecta:
<%
Respuesta.Redirect index.asp
Response.write <script type = text/javaScript> _
& alerta ('¡Error de contraseña!') </script>
%>
Este es un error común.
La razón está relacionada con el manejo de las dos líneas de código. Las dos líneas de código no pueden funcionar al mismo tiempo.
Response.Write es un texto para el cliente.
La respuesta. Redirect envía una información de encabezado HTTP al cliente (¿cuál es la información del encabezado HTTP? Entonces, por ejemplo, la redacción de las cookies del cliente es la información del encabezado HTTP. Navegador, es por eso que a veces modificamos el cable del servidor y Modifique las cookies incorrectas, porque el sujeto ha comenzado a transmitirse, y no está permitido enviar información de encabezado HTTP. No importa cuántos contenidos se hayan escrito en el búfer, una vez que se llame a la respuesta. Redirect, se llamará y se llamará. Si rastrea dinámicamente la ejecución del programa, también encontraremos que después de llamar a Response.Redirect, el programa deja de ejecutar, por lo tanto, preste atención al programa junto al servidor antes de llamar a Respuesta.Redirect.
Entonces, ¿cómo se debe modificar el ejemplo anterior? Si no desea modificar el índice.asp para agregar el mensaje del script, solo puede poner las instrucciones de dirección en el script del cliente para la ejecución, solo así:
<%
Response.write <script type = text/javaScript> _
& alert ('!');
%>