Consejo uno: ¿Mejorar la eficiencia del uso de la colección de solicitudes
? Acceder a una colección ASP para extraer un valor es un proceso que requiere mucho tiempo y recursos computacionales. Debido a que esta operación implica una serie de búsquedas en colecciones relacionadas, es mucho más lenta que acceder a una variable local. Por lo tanto, si planea utilizar un valor en la colección de solicitudes varias veces en la página, debería considerar almacenarlo como una variable local. Por ejemplo, escriba el código del siguiente formulario para acelerar el procesamiento del motor de secuencias de comandos:
strTitle=Request.Form("Title")
strFirstName=Solicitud.Form("Nombre")
strApellido=Solicitud.Form("Apellido")
Si Len(strTitle) Entonces strTitle=strTitle & " "
Si strFirstName="" Entonces strFullName=strTitle & " " & strLastName
Elseif Len(strFirstName)=1 Entonces
strFullName=strTítulo & strFirstName & ". " & strApellido
Demás
strFullName=strTítulo & strFirstName & " " & strApellido
Terminar si
??Consejo 2: acceda directamente a la colección adecuada
. Si no tiene otra opción, no utilice strPage=Request("page") para obtener parámetros, ya que esto buscará todas las colecciones en orden: QueryString, Form, Cookies, ClientCertificate, ServerVarible hasta que se encuentre el nombre del primer valor coincidente. Hacerlo es menos eficiente que acceder directamente a la colección apropiada y no es seguro a menos que exista una garantía absoluta de que el valor no aparecerá en otra colección.
Por ejemplo, es posible que desee buscar el nombre de un servidor WEB que cumpla con la solicitud de un cliente. Esto se logra buscando "SERVER_NAME" en la colección Request.ServerVarables que aparece en cada consulta. Sin embargo, si otras colecciones también contienen valores denominados "SERVER_NAME" (los nombres de las claves no distinguen entre mayúsculas y minúsculas), obtendrá resultados incorrectos al utilizar Request ("server_Name"). En resumen, siempre que sea posible se debe acceder directamente a la colección adecuada.
?? Consejo 3: Utilice la propiedad Response.IsClientConnected antes de operaciones que requieren mucho tiempo
. ?? Usar Response.IsClientConnected es una forma útil de observar si el usuario todavía está conectado al servidor y está cargando la página web creada por ASP. Si el usuario se desconecta o deja de descargar, ya no tendremos que desperdiciar recursos del servidor creando la página web porque IIS descartará el contenido del búfer. Por lo tanto, para páginas que requieren mucho tiempo para calcular o utilizan muchos recursos, vale la pena verificar en cada etapa si el visitante está desconectado:
… Código para crear la primera parte de la página
Si Response.IsClientConnected entonces
Respuesta.Flush
Demás
Respuesta.Fin
Terminar si
...... ¿Código para crear la siguiente parte de la página
? Consejo 4: ¿Optimizar las operaciones de ADO en ASP
? En términos generales, los datos constituyen el contenido real del sitio WEB. Por tanto, es muy útil optimizar las operaciones ADO para acelerar la ejecución del código ASP:
??a. Seleccione solo las columnas requeridas: al abrir un conjunto de registros ADO, no debe usar automáticamente el nombre de la tabla (es decir, SELECT *) a menos que necesite obtener todas las columnas. El uso de columnas separadas significa que se reduce la cantidad de datos enviados o recuperados del servidor. Incluso si necesita utilizar todas las columnas, nombrar cada columna individualmente logrará el mejor rendimiento, porque el servidor no tiene que interpretar los nombres de las columnas.
?? b. Utilice procedimientos almacenados tanto como sea posible. Los procedimientos almacenados son programas precompilados que contienen un plan de ejecución preparado, por lo que se ejecutan más rápido que las sentencias SQL.
??c. Utilice patrones de cursor y bloqueo apropiados. Si todo lo que hace es leer datos del conjunto de registros y mostrarlos en la pantalla, utilice el conjunto de registros predeterminado de solo lectura y solo avance. Cuanto menos trabajo tenga que hacer ADO para mantener los detalles de registros y bloqueos, mayor será el rendimiento que realizará.
??d. Utilizar variables de objeto. Una forma segura de mejorar el rendimiento al iterar sobre un conjunto de registros es utilizar variables de objeto para señalar miembros de la colección. Por ejemplo:
mientras no sea RsGc.EOF
Respuesta.Escriba "Nombre del proyecto:" & RsGc("GcMC") & "(Código del proyecto: " & RsGc("GcCode") & ")
"
RsGc.MoverSiguiente
Wend
se puede reescribir como el siguiente código para acelerar la ejecución:
set GcMc=RsGc("GcMc")
establecer GcCode=RsGc("GcCode")
Mientras no sea rsGc.EOF Response.Write "Nombre del proyecto: " & GcMc & " (Código del proyecto: " & GcCode & ")
" RsGc.MoverSiguiente
Wend
?? El nuevo código establece una referencia a la variable de objeto, por lo que se puede usar la variable de objeto en lugar de la variable real, lo que significa que el motor de script tiene menos trabajo porque hay menos índices en la colección.
??Consejo 5: No mezcle motores de secuencias de comandos
? Sabemos que tanto VBScript como JScript se pueden utilizar en páginas ASP. Pero no es recomendable utilizar JScript y VBScript al mismo tiempo en la misma página. Debido a que el servidor debe crear instancias e intentar almacenar en caché dos (en lugar de uno) motores de script, esto aumenta hasta cierto punto la carga en el sistema. Por lo tanto, por motivos de rendimiento, no debes mezclar varios motores de secuencias de comandos en la misma página.