Astuce n°1 : Améliorer l'efficacité de l'utilisation de la collection Request
? L'accès à une collection ASP pour extraire une valeur est un processus long et gourmand en ressources informatiques. Cette opération impliquant une série de recherches dans des collections associées, elle est beaucoup plus lente que l'accès à une variable locale. Par conséquent, si vous envisagez d'utiliser une valeur de la collection Request plusieurs fois sur la page, vous devez envisager de la stocker en tant que variable locale. Par exemple, écrivez le code sous la forme suivante pour accélérer le traitement du moteur de script :
strTitle=Request.Form("Title")
strFirstName=Request.Form("Prénom")
strLastName=Request.Form("LastName")
Si Len(strTitle) Alors strTitle=strTitle & " "
Si strFirstName="" Alors strFullName=strTitle & " " & strLastName
Sinon si Len(strFirstName)=1 Alors
strFullName=strTitle & strFirstName & ". " & strLastName
Autre
strFullName=strTitle & strFirstName & " " & strLastName
Fin si
??Astuce 2 : accédez directement à la collection appropriée
??Si vous n'avez pas le choix, n'utilisez pas strPage=Request("page") pour obtenir les paramètres, car cela recherchera toutes les collections dans l'ordre : QueryString, Form, Cookies, ClientCertificate, ServerVarible jusqu'à ce que le nom de la première valeur correspondante soit trouvé. Cela est moins efficace que d'accéder directement à la collection appropriée et n'est pas sûr à moins qu'il n'y ait une garantie absolue que la valeur n'apparaîtra pas dans une autre collection.
Par exemple, vous souhaiterez peut-être rechercher le nom d'un serveur WEB qui répond à la demande d'un client. Pour ce faire, recherchez « SERVER_NAME » dans la collection Request.ServerVarables qui apparaît dans chaque requête. Cependant, si d'autres collections contiennent également des valeurs nommées "SERVER_NAME" (les noms de clés ne sont pas sensibles à la casse), vous obtiendrez des résultats incorrects lors de l'utilisation de Request("server_Name"). En résumé, la collection appropriée doit être accessible directement autant que possible.
?? Astuce 3 : utilisez la propriété Response.IsClientConnected avant les opérations fastidieuses
?? L'utilisation de Response.IsClientConnected est un moyen utile de vérifier si l'utilisateur est toujours connecté au serveur et charge la page Web créée par ASP. Si l'utilisateur se déconnecte ou arrête le téléchargement, nous n'avons plus à gaspiller les ressources du serveur pour créer la page Web car le contenu du tampon sera supprimé par IIS. Ainsi, pour les pages qui demandent beaucoup de temps de calcul ou utilisent beaucoup de ressources, il convient de vérifier à chaque étape si le visiteur est hors ligne :
… Code pour créer la première partie de la page
Si Response.IsClientConnected alors
Réponse.Flush
Autre
Réponse.Fin
Fin si
...... Code pour créer la partie suivante de la page
?? Astuce 4 : Optimiser les opérations ADO en ASP
?? De manière générale, les données constituent le contenu même du site WEB. Par conséquent, il est très utile d’optimiser les opérations ADO pour accélérer l’exécution du code ASP :
??a. Sélectionnez uniquement les colonnes requises : lors de l'ouverture d'un jeu d'enregistrements ADO, vous ne devez pas utiliser automatiquement le nom de la table (c'est-à-dire SELECT *), sauf si vous devez obtenir toutes les colonnes. L'utilisation de colonnes séparées signifie que la quantité de données envoyées ou récupérées depuis le serveur est réduite. Même si vous devez utiliser toutes les colonnes, nommer chaque colonne individuellement permettra d'obtenir les meilleures performances, car le serveur n'a pas besoin d'interpréter les noms des colonnes.
??b. Utilisez autant que possible les procédures stockées. Les procédures stockées sont des programmes précompilés qui contiennent un plan d'exécution préparé, de sorte qu'elles s'exécutent plus rapidement que les instructions SQL.
??c. Utilisez des modèles de curseur et de verrouillage appropriés. Si tout ce que vous faites est de lire les données du jeu d'enregistrements et de les afficher à l'écran, utilisez le jeu d'enregistrements par défaut en lecture seule et en avant uniquement. Moins ADO doit effectuer de travail pour conserver les détails des enregistrements et des verrous, plus ses performances sont élevées.
??d. Utiliser des variables d'objet. Un moyen sûr d'améliorer les performances lors d'une itération sur un jeu d'enregistrements consiste à utiliser des variables d'objet pour pointer vers les membres de la collection. Par exemple :
Tant que ce n'est pas RsGc.EOF
Réponse.Écrivez "Nom du projet :" & RsGc("GcMC") & "(Code du projet : " & RsGc("GcCode") & ")
"
RsGc.MoveNext
Wend
peut être réécrit comme le code suivant pour accélérer l'exécution :
set GcMc=RsGc("GcMc")
définir GcCode=RsGc("GcCode")
Bien que ce ne soit pas rsGc.EOF Response.Write "Nom du projet : " & GcMc & " (Code du projet : " & GcCode & ")
" RsGc.MoveNext
Wend
?? Le nouveau code établit une référence à la variable objet, donc la variable objet peut être utilisée à la place de la variable réelle, ce qui signifie que le moteur de script a moins de travail car il y a moins d'index dans la collection.
??Astuce 5 : Ne mélangez pas les moteurs de script
??Nous savons que VBScript et JScript peuvent être utilisés dans les pages ASP. Mais il est déconseillé d’utiliser JScript et VBScript en même temps sur la même page. Étant donné que le serveur doit instancier et tenter de mettre en cache deux moteurs de script (au lieu d'un), cela augmente dans une certaine mesure la charge sur le système. Par conséquent, pour des raisons de performances, vous ne devez pas mélanger plusieurs moteurs de script sur la même page.