ASP (Página de servidor Active) es una plataforma dinámica de desarrollo de la página web basada en la plataforma PWS (servidor web personal) e IIS (servidor de información de Internet) lanzada por Microsoft, que ahora se está volviendo más madura y perfecta. Aquí solo tenemos algunas discusiones simples sobre la optimización del código.
8 Técnicas de optimización de codificación ASP:
1. Declarar variables VBScript
En ASP, VBScript cuenta con un fuerte soporte y puede integrar a la perfección las funciones y métodos de VBScript, lo que proporciona una gran comodidad para extender las funciones existentes de ASP. Dado que el concepto de tipos variables se ha bordeado en ASP, muchos programadores están acostumbrados a no declarar las variables de VBScript durante la interacción entre ASP y VBScript, lo que aumenta la carga de combate del servidor y, por lo tanto, afecta la velocidad de solicitud de respuesta del servidor.
En vista de esto, podemos obligar al usuario a realizar declaraciones variables en VBScript al igual que obligamos al usuario a realizar declaraciones variables en VB. El método de implementación es colocar <% de opción explícita%> al comienzo de la línea del programa ASP.
2. Codifique la dirección de URL
Cuando usamos ASP para generar dinámicamente una dirección de URL con parámetros y saltar, es normal analizar en IE, pero al navegar por NetScrape, hay errores de la siguiente manera:
- Httperror400
- 400BADREQUEST
- DuetomalformedSyntax, el mejor no pudo ser endStoryry por el servidor.
- El tiempo no debe obtenerse para obtener más modificaciones.
La solución es usar el método URLEncode del objeto ASP incorporado para codificar la URL de los parámetros de URL generados.
- <%
- Url = xur.asp
- var1 = username = & server.urlencode (Xur)
- Var2 = & Company = & Server.urlencode (XurStudio)
- var3 = & phone = & server.urlencode (021-53854336-186)
- Response.Redirecturl &? & Var1 & Var2 y Var3
- %>
3. Borre el objeto
Después de usar el objeto, primero use el método Cerrar para liberar los recursos del sistema ocupados por el objeto; En aquel entonces, bloqueé mi II creando más de 100 registros en una página sin objetos claros. El siguiente código utiliza el contenido de la base de datos para crear una lista desplegable. El ejemplo del código es el siguiente:
- <%mydsn = dsn = xur; uid = xur; pwd = xur
- mysql = select*from Authorswhereau_id < 100
- setConntemp = Server.CreateObject (ADODB.Connection)
- conntemp.openmydsn
- setRstemp = conntemp.execute (mysql)
- ifrstemp.eofthen
- Respuesta. Write Database está vacía
- respuesta.WriteMysql
- conntemp.close
- setConntemp = nada
- respuesta.
- endif%>
- <%dountilrstemp.eof%>
- <%
- rstemp.movenext
- bucle
- rstemp.close
- SetRstemp = nada
- conntemp.close
- setConntemp = nada
- %>
4. Cree una consulta SQL usando cadenas
El uso de cadenas para establecer consultas no acelera la velocidad de análisis del servidor. Pero todavía se recomienda usar cadenas en lugar de simples declaraciones de consulta para consultar. La ventaja de esto es que puede descubrir rápidamente el problema del programa, facilitando y generando eficientemente el programa. Los ejemplos son los siguientes:
- <%mysql = select*
- mysql = mysql & fromempublishers
- mysql = mysql & wherestate = 'ny'
- respuesta.WriteMysql
- setRstemp = conntemp.execute (mysql)
- rstemp.close
- SetRstemp = nada
- %>
5. Uso Caso para seleccionar la condición
Al hacer una selección condicional, intente usar las declaraciones de casos y evite usar las declaraciones IF. El uso de declaraciones de casos puede hacer que el programa se pueda fluir y ejecutar más rápido que las declaraciones de IF. Los ejemplos son los siguientes:
- <%
- Fori = 1to1000
- n = i
- Response.Writeaddsuffix (N) y <Br>
- PRÓXIMO
- %>
- <%
- FunctionAddSuffix (num)
- nUpert = Right (num, 1)
- SelectCasenUrtt
- Caso1
- Ifinstr (num, 11) entonces
- num = num & th
- DEMÁS
- num = num y st
- Endif
- Caso2
- Ifinstr (num, 12) entonces
- num = num & th
- DEMÁS
- num = num & nd
- Endif
- Case3
- Ifinstr (num, 13) entonces
- num = num & th
- DEMÁS
- num = num & rd
- Endif
- Caso4
- num = num & th
- Casualidad
- num = num & th
- EndSelectar
- AddSuffix = num
- Función final
- %>
6. Use constantes definidas en el archivo Adovbs.inc para abrir el conjunto de registros
Al abrir un conjunto de registros, puede definir el tipo de cursor y el tipo de bloqueo que abre el conjunto de registros. Hay algunas constantes definidas en el archivo Adovbs.InC para definir estos tipos. El archivo Adovbs.inc se guarda en el directorio/inetpub/iissamples/iisamples. A continuación se presentan algunos tipos de cursor y tipos de bloqueo comúnmente utilizados.
Tipo de cursor: el cursor de adopción de AdopenFownly solo puede avanzar; por otros usuarios.
Tipo de bloqueo: Adlockreadony no puede modificar los registros en el conjunto de registros;
- <!-#includeVirtual =/Adovbs.inc->
- <%
- ConnectMe = dsn = xur; uid = xur; pwd = xur
- sqltemp = select*frommpublisherswherename = 'xur'
- setRstemp = server.createObject (ADODB.RecordSet)
- rstemp.opensqltemp, ConnectMe, Adopenstatic, Adlockoptimstic
- Response.WriterStemp.RecordCount & Recordsin <Br> & SQLTemp
- rstemp.close
- SetRstemp = nada
- %>
7. Evite la definición de objetos en el archivo global.ASA
Dado que el contenido en el archivo global.asa puede ser referenciado por todos los archivos en el sitio, sin duda, definir objetos en el archivo global.asa puede guardar mucha duplicación. Por ejemplo, en la función Application_onStart en Global.asa, se hace la siguiente definición:
- <%subapplication_onstart
- setApplication (theconn) = server.createObject (ADODB.Connection)
- Endsub%>;
Esto le permite hacer referencias similares en cualquier código en el sitio:
- <%
- mysql = select*frommpublishers wherestate = 'xur'
- setRstemp = Application (theconn) .execute (mysql)
- %>
Del mismo modo, el objeto de conjunto de registros se puede crear en la función session_onStart
- <%subsession_onStart
- setSession (rstemp) = server.createObject (ADODB.RecordSet)
- Endsub%>
Luego, las siguientes citas se realizan en el sitio:
- <%
- mysql = select*frommpublishers wherestate = 'xur'
- setsession (rstemp) = conntemp.execute (mysql)
- %>
Sin embargo, hacer esto también tiene un gran impacto negativo. actuación. .
Solución: cree una página ASP para definir objetos e introduzca esta página ASP en la página donde se deben llamar a estos objetos. Suponiendo que se define el nombre de la página ASP del objeto definido.
Al introducir páginas, es mejor no incluir <%@lengua = VBScript%> la declaración en el archivo ASP que se introducirá. Porque en el archivo ASP, solo puede haber un lenguaje de análisis de script definido por @.
8. Protección de seguridad
ASP proporciona un buen mecanismo de protección de código, y todo el código ASP se ejecuta en el lado del servidor y solo devuelve el resultado de la ejecución del código del cliente. Aun así, en la versión anterior de IIS, puede ver el código fuente de ASP después del nombre del archivo :: $ Data, que ya se encuentra dentro del alcance de la seguridad del servidor web y no está dentro del alcance de este artículo. Las siguientes son dos precauciones de seguridad simples.
Aunque se recomienda introducir archivos con INC ASP como extensión, todavía se recomienda usar ASP como extensión para introducir archivos aquí. Cuando estos códigos se ejecutan en un servidor web con un mecanismo de seguridad deficiente, puede explorar el contenido del archivo importado simplemente ingresando la barra de direcciones (Inc es la extensión). El tipo (como Inc) no está definido, el archivo se muestra en el código fuente.
No coloque el archivo de la base de datos dentro de la estructura del sitio web, de modo que cuando una persona maliciosa obtenga la ruta de la base de datos, pueda obtener fácilmente la base de datos y luego cambiar el contenido de la base de datos arbitrariamente. Un mejor enfoque es establecer un DSN (nombre de fuente de fecha) para la base de datos y acceder al DSN directamente al acceder a la base de datos.
Cada una de las ocho técnicas de optimización de codificación ASP anteriores es muy importante y requiere que todos lo experimenten cuidadosamente y realmente entiendan que se convierte en su propia cosa.