Recomendado: Cómo formatear la paginación ASP y la fecha para el formato RFC822 Calcule la página, jeje, no tiene que juzgar el siguiente contenido referenciado: intnumpage = abs (int (-(intnumRecord/intperPage))) Formatear la fecha
Si la sala de computadoras está a punto de cerrar, o si tiene prisa para salir con un mm, salta directamente al cuarto párrafo.
Los scripts descritos a continuación incluyen scripts del lado del servidor y scripts del lado del cliente. Los scripts del lado del servidor se refieren a la parte de los scripts que se ejecutan en el servidor. Por ejemplo, la respuesta común. Write obviamente se ejecuta en el servidor. Los scripts del lado del servidor se pueden escribir en lenguajes VBScript y JScript. En este artículo, se utiliza VBScript, JScript es el mismo principio.
También se puede considerar que los scripts de clientes incluyen dos idiomas: VBScript y JavaScript, que son lenguajes de secuencias de comandos que se ejecutan en los navegadores de los clientes. Por ejemplo, cuando visitamos una página web, aparece un cuadro de mensaje, que se realiza utilizando scripts de cliente (alerta, msgbox, etc.), y obviamente no es algo que los scripts del lado del servidor pueden hacer. Hay una gran diferencia entre los scripts del cliente y los scripts del servidor (en navegadores como IE y Firefox), es decir, los scripts de clientes pueden acceder al modelo de objetos de documento (DOM) y operar objetos en la página (como modificar el título de la página, modificar el atributo InnerHTML de un DIV, etc.).
Primero, comprendamos el proceso de ejecución de la página ASP
1.Iis encuentra el archivo ASP y lo envía al motor ASP (generalmente ASP.DLL) para su procesamiento.
2. El motor abre este archivo ASP y encuentra el contenido entre < % y %>, y, por supuesto, el contenido entre <script runat = server> y el correspondiente </script>. Estos contenidos se llaman bloques de script. Solo el contenido en el bloque de script está analizado por el motor, y el otro contenido se ignora y se inserta entre los bloques de script como caracteres sin sentido. Es necesario aclarar que, de hecho, hay más que este contenido que se analiza. Los archivos incluidos del lado del servidor de la clase <!-#incluido ***-> también están incluidos y procesados por el motor. Si lee más programas, también sabrá que algunos objetos <panes> marcados como servidor con atributo Runat también se procesarán, por lo que no lo discutiré en profundidad aquí.
3. El motor ejecuta scripts en el bloque de script. Estos scripts del lado del servidor se ejecutan en su conjunto, es decir, se puede escribir el siguiente código:
| El siguiente es el contenido citado: <% Dim I Para i = 1 a 5 %> ¡Hola mundo! < % Siguiente %> |
El motor no analiza estos bloques de script por separado, lo que hace que ocurran errores de sintaxis en ambos bloques de scripts. Por lo tanto, hemos llegado a la siguiente conclusión: no se enviará todo el código de script no servidor al cliente, y es posible que este código de script no servidor esté restringido por el bloque de script. El servidor definitivamente no se preocupará por la ejecución de los scripts del cliente, pero se pueden emitir diferentes scripts de clientes a través de scripts del servidor.
4. Al final, el motor genera un flujo de texto o el resultado de ejecución del script, que puede considerarse como una cadena, que es el código enviado a la página web del navegador del cliente. El navegador del cliente muestra la página. En este momento, el código fuente (archivo fuente) de la página no contiene scripts del lado del servidor, sino que contiene el resultado de ejecución de los scripts del lado del servidor (esto es obvio).
< % ... %> y <script runat = server>… </script>
Todos son scripts del lado del servidor que se procesan y ejecutan al mismo tiempo. Se ejecutan en su conjunto.
< % ... %> y <script language = ...> ... </script>
El primero es un script del lado del servidor, y el segundo es un script del lado del cliente. El primero se ejecuta primero, y el segundo se ejecuta más tarde.
De hecho, no es del todo cierto. Los scripts de los dos pueden ejecutarse al mismo tiempo, pero el espacio es diferente, y todavía es: el primero se ejecuta en el servidor y el segundo se ejecuta en el navegador del cliente. El primero debe ser ejecutado lógicamente por adelantado por el segundo. Al mismo tiempo, también concluimos que durante la ejecución de la misma página, el script del cliente no se puede volver a alimentar al script del servidor de ninguna manera. Es decir, el cliente navega por su libro de mensajes y envía un nuevo mensaje, o el valor obtenido por cualquier script del cliente no puede procesarse en la misma respuesta del servidor.
Sobre la llamada del componente
Tenga en cuenta que los scripts del lado del servidor y los scripts del lado del cliente son ambos scripts, por lo que puede crear naturalmente componentes XMLHTTP, componentes ADODB.Connection, etc., pero no en ningún lado.
Si se usa XMLHTTP para rastrear páginas web (como la colección) en el servidor, debe crearse en el script del servidor. Si se usa para AJAX para el cliente y el backend accede a las páginas en el servidor sin actualizarlo, se ejecuta en el cliente y se crea naturalmente en el cliente.
El componente ADODB.Connection se utiliza para acceder a la base de datos. En general, se crea en el lado del servidor. Después de todo, el programa ASP del lado del servidor está ejecutando los datos de la base de datos. Sin embargo, si su base de datos está realmente conectada al cliente (como http://bbs.bccn.net/thread-224966-1-2.html), entonces indudablemente se crea en el script del cliente.
En resumen, las cosas contradictorias y sus respectivos aspectos tienen sus propias características. Diferentes cosas tienen diferentes contradicciones; Lo mismo tiene diferentes contradicciones en diferentes procesos y etapas de desarrollo; Las diferentes contradicciones en la misma cosa y los dos aspectos diferentes de la misma contradicción tienen sus propias características (si no puede entenderlas, puede ignorarlos ...). Este principio requiere que nos adhieramos al principio de análisis específico de problemas específicos, y bajo la guía del principio de universalidad de las contradicciones, debemos analizar específicamente la particularidad de las contradicciones y encontrar la forma correcta de resolverlas. Oponerse a la adopción del mismo tamaño de un método para resolver las contradicciones entre diferentes cosas. Esto es lo que dices cuando abres una llave y cantas una canción cuando vas a la montaña.
El script VBScript del lado del servidor usa el método Server.CreateObject (className) para crear objetos, y el script VBScript del lado del cliente usa el método CreateObject (className) para crear objetos.
Error típico
| El siguiente es el contenido citado: <% 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 la función que definí </a> (http://bbs.bccn.net/thread-225244-1-1.html) |
Análisis de errores:
Confunde la diferencia entre los scripts del lado del servidor y los scripts del lado del cliente. Al ejecutar realmente, encontraremos que el cliente no recibe ningún código como TSize en absoluto, porque TSIZE es un programa del lado del servidor. Después de ser procesado por el motor (tenga en cuenta que el procesamiento de funciones del motor es llamado exclusivamente por el script del lado del servidor y no se enviará de vuelta al cliente) y desaparecerá y no puede funcionar en el cliente. Esto significa que los scripts del cliente no pueden llamar directamente a las funciones de los scripts del lado del servidor.
De hecho, este programa tiene errores de sintaxis. Cuando el motor procesa este contenido, primero encuentra el contenido entre <%y%>, es decir, <%tsize ('variable')%>. Obviamente, este contenido no cumple con las reglas de sintaxis de VBScript. Bueno, cambiarlo a <%= tsize (variable)%> no hay error de sintaxis en el script del lado del servidor. En este momento, la función TSIZE puede devolver el valor a China normalmente, por lo que el atributo HREF recibido por el cliente está escrito así: JavaScript: China, no se puede ejecutar.
El impacto de los scripts del lado del servidor en los scripts del lado del cliente
Como se mencionó anteriormente, los scripts del lado del servidor se ejecutan lógicamente antes de los scripts del lado del cliente, por lo que dicho código es factible:
| El siguiente es el contenido citado: <% Dim I Para i = 1 a 5 Response.write <script type = text/javaScript> _ & alerta ('¡Hola mundo! & I &') </script> Próximo %> Con respecto a la ejecución de respuesta. Redirect y JavaScript Tenga en cuenta que el siguiente código está escrito incorrectamente: <% Respuesta.Redirect index.asp Response.write <script type = text/javaScript> _ & alerta ('¡Error de contraseña!') </script> %> |
Este es un error común. Los escritores a menudo piensan que escribir código de esta manera puede hacer que el cliente aparezca un mensaje de error de contraseña y luego recurra a index.asp. De hecho, esto no puede suceder. Incluso si se intercambian dos líneas de código en secuencia, es imposible lograr este efecto.
La razón está relacionada con la forma en que el servidor maneja las dos líneas de código. Estas dos líneas de código no pueden funcionar al mismo tiempo.
Response.Write envía un texto al cliente. El contenido de este texto puede ser un script. El navegador del cliente puede ejecutar este script después de recibirlo. Tenga en cuenta que solo se puede ejecutar después de recibirlo.
Response.Redirect envía un encabezado HTTP al cliente (¿qué es el encabezado HTTP? Vamos a decir de esta manera, por ejemplo, la escritura a las cookies del cliente es la información del encabezado HTTP, y la información del encabezado HTTP se envía de vuelta al navegador del cliente antes del sujeto HTTP. Esta es la razón por la cual a veces modificamos las cookies después de cerrar el buffer del servidor, porque el sujeto ha comenzado a comenzar a transmitir y no es decir que transmita y no se deje transmisar. información.), El contenido de la información le dice al navegador del cliente que salte a la página para navegar. Tenga en cuenta que esta información de redirección funciona de inmediato, es decir, esta información de redirección es exclusiva. Cuando se enciende el búfer, no importa cuánto contenido se haya escrito en el búfer usando respuesta. Visualización, una vez que se llama a la respuesta. Si rastreamos dinámicamente la ejecución del programa, también encontraremos que después de llamar a la respuesta.
Entonces, ¿cómo se debe modificar el ejemplo anterior? Si no está dispuesto a modificar ese índice.asp para agregar indicaciones de script, solo puede poner el comando de dirección en el script del cliente para ejecutar, así: así:
| El siguiente es el contenido citado: <% Response.write <script type = text/javaScript> _ & alert ('!'); ubicación.href = 'index.asp' </script> %> |
Compartir: programación avanzada ASP 3.0 (33) 7.4.2 Manejo de errores de VBScript en VBScript, el intérprete de script no puede manejar ningún error que encuentre, y continuar ejecutando la siguiente declaración utilizando la declaración de reanudación de error ON. Una vez que se haya procesado esta declaración, el motor de script continuará ejecutando el programa posterior.