ASP (Active Server Page) est une technologie de développement de pages Web dynamique basée sur la plate-forme PWS (Personal Web Server) & IIS (Internet Information Server) lancé par Microsoft, qui devient désormais plus mature et parfait. Ici, nous n'avons que quelques discussions simples sur l'optimisation du code.
8 techniques d'optimisation de codage ASP:
1. Déclarer les variables VBScript
Dans ASP, VBScript reçoit un support solide et peut intégrer de manière transparente les fonctions et méthodes VBScript, ce qui offre une grande commodité pour l'extension des fonctions existantes d'ASP. Étant donné que le concept de types de variables a été floue dans ASP, de nombreux programmeurs sont habitués à ne pas déclarer les variables VBScript pendant l'interaction entre ASP et VBScript, ce qui augmente la charge d'analyse du serveur et affecte ainsi la vitesse de demande de réponse du serveur.
Compte tenu de cela, nous pouvons forcer l'utilisateur à effectuer des déclarations variables dans VBScript comme nous obligeons l'utilisateur à effectuer des déclarations variables dans VB. La méthode d'implémentation consiste à placer <% l'option explicite%> au début de la ligne du programme ASP.
2. Encoder l'adresse URL
Lorsque nous utilisons ASP pour générer dynamiquement une adresse URL avec des paramètres et sauter, il est normal de analyser dans IE, mais lors de la navigation sur le netscrapes, il y a des erreurs comme suit:
- Httperror400
- 400BADREQUEST
- DUETOMALFORMEDSYNTAX, la question ne pouvait pas être Beunderstory par le serveur.
- L'éclairage ne devrait pas être le point de vue avec des modifications.
La solution consiste à utiliser la méthode URLencode de l'objet de serveur intégré ASP pour coder les paramètres URL générés.
- <%
- Url = xur.asp
- var1 = username = & server.urlencode (xur)
- var2 = & company = & server.urlencocode (xurstudio)
- var3 = & phone = & server.urlencode (021-53854336-186)
- réponse.redirectUrl &? & var1 & var2 & var3
- % >
3. Effacer l'objet
Après avoir utilisé l'objet, utilisez d'abord la méthode Close pour libérer les ressources système occupées par l'objet; ensuite définir la valeur de l'objet sur rien pour libérer l'objet pour occuper la mémoire. À l'époque, j'ai écrasé mon IIS en créant plus de 100 ensembles d'enregistrements sur une page sans objets clairs. Le code suivant utilise le contenu de la base de données pour créer une liste déroulante. L'exemple de code est le suivant:
- <% mydSn = dsn = xur; uid = xur; pwd = xur
- mysql = select * FromAuthorswHereau_id < 100
- setConnTemp = server.createObject (adodb.connection)
- contempt.openmydsn
- setRstemp = ConnTemp.Execute (MySQL)
- ifrstemp.eofthen
- réponse. La base de données de l'écriture est vide
- réponse.writemysql
- ConnTemp.close
- setConnTemp = rien
- réponse.
- Endif% >
- <% doulrstemp.eof% >
- <%
- rstemp.movènext
- boucle
- rtestp.close
- Setrstemp = rien
- ConnTemp.close
- setConnTemp = rien
- % >
4. Créer une requête SQL à l'aide de chaînes
L'utilisation de chaînes pour établir des requêtes n'accélère pas la vitesse d'analyse du serveur. Mais il est toujours recommandé d'utiliser des chaînes au lieu de instructions de requête simples à la question. L'avantage de cela est qu'il peut rapidement découvrir le problème du programme, facilitant ainsi et générant efficacement le programme. Les exemples sont les suivants:
- <% mysql = select *
- mysql = mysql & fromEmpublishers
- mysql = mysql & wherestate = 'ny'
- réponse.writemysql
- setRstemp = ConnTemp.Execute (MySQL)
- rtestp.close
- Setrstemp = rien
- % >
5. Cas d'utilisation pour sélectionner la condition
Lorsque vous effectuez une sélection conditionnelle, essayez d'utiliser les instructions de cas et évitez d'utiliser les instructions IF. L'utilisation d'instructions de cas peut rendre le programme fluide et exécuter plus rapidement que les instructions IF. Les exemples sont les suivants:
- <%
- Fori = 1to1000
- n = i
- Response.WriteDdsuffix (N) et <br>
- SUIVANT
- % >
- <%
- Fundeaddsuffix (num)
- Numpart = à droite (num, 1)
- SelectCasenumpart
- Cas1
- IFinstr (num, 11) puis
- num = num & th
- AUTRE
- num = num & st
- Endire
- Cas2
- IFinstr (num, 12) puis
- num = num & th
- AUTRE
- num = num & nd
- Endire
- Cas3
- IFinstr (num, 13) puis
- num = num & th
- AUTRE
- num = num & rd
- Endire
- Cas4
- num = num & th
- Caseelse
- num = num & th
- Se licez
- AddSuffix = num
- Finition de fin
- % >
6. Utiliser les constantes définies dans le fichier Adovbs.inc pour ouvrir l'ensemble d'enregistrements
Lors de l'ouverture d'un ensemble d'enregistrements, vous pouvez définir le type de curseur et le type de verrouillage que le jeu d'enregistrements s'ouvre. Certaines constantes sont définies dans le fichier ADOVBS.INC pour définir ces types. Le fichier ADOVBS.INC est enregistré dans le répertoire / IneTpub / IISSamples / iisamples. Vous trouverez ci-dessous quelques types de curseur couramment utilisés et types de verrouillage.
Type de curseur: Le curseur adoptif peut seulement aller de l'avant; par d'autres utilisateurs.
Type de verrouillage: AdlockReadoney ne peut pas modifier les enregistrements dans l'ensemble des enregistrements;
- <! - # inclueVirtual = / Adovbs.inc - >
- <%
- connectMe = dsn = xur; uid = xur; pwd = xur
- sqlTemp = select * NrompublisherswheRename = 'xur'
- setRstemp = server.createObject (adodb.recordSet)
- rstemp.opensqlTEMP, ConnectMe, AdoptenStatic, Adlockoptimstic
- Response.Writerstemp.RecordCount & Recordsin <br> & SqlTemp
- rtestp.close
- Setrstemp = rien
- % >
7. Évitez la définition d'objet dans le fichier global.asa
Étant donné que le contenu dans le fichier global.asa peut être référencé par tous les fichiers du site, sans aucun doute, la définition d'objets dans le fichier global.asa peut enregistrer beaucoup de duplication. Par exemple, dans la fonction application_onstart dans global.asa, la définition suivante est faite:
- <% subapplication_onstart
- setApplication (theConn) = server.createObject (adodb.connection)
- ENDSUB% >;
Cela vous permet de faire des références similaires dans n'importe quel code sur le site:
- <%
- mysql = select * fromPublisherswherestate = 'xur'
- setrstemp = application (theConn) .Exécute (mysql)
- % >
De même, l'objet d'enregistrement d'enregistrement peut être créé dans la fonction session_onstart
- <% SUBSESSION_ONSTART
- setSession (rSTEMP) = server.createObject (adodb.recordSet)
- Endsub% >
Ensuite, les citations suivantes sont faites sur le site:
- <%
- mysql = select * fromPublisherswherestate = 'xur'
- setSession (RSTEMP) = ConnTemp.Execute (MySQL)
- % >
Cependant, cela a également un grand impact négatif. performance. .
Solution: Créez une page ASP pour définir des objets et introduisez cette page ASP sur la page où ces objets doivent être appelés. En supposant que le nom de la page ASP de l'objet défini est défini.asp, la page peut être introduite en ajoutant l'instruction suivante à la page ASP correspondante.
Lors de l'introduction de pages, il est préférable de ne pas inclure <% @ lingots = vbscript%> dans le fichier ASP à introduire. Parce que dans le fichier ASP, il ne peut y avoir qu'une seule langue d'analyse de script définie par @.
8. Protection de la sécurité
ASP fournit un bon mécanisme de protection de code, et tout le code ASP est exécuté du côté du serveur et renvoie uniquement le résultat de l'exécution du code client. Même ainsi, dans l'ancienne version d'IIS, vous pouvez afficher le code source d'ASP après le nom de fichier :: $ Data, qui relève déjà du champ de la sécurité du serveur Web et n'est pas dans le cadre de cet article. Voici deux précautions de sécurité simples.
Bien qu'il soit recommandé d'introduire des fichiers avec Inc ASP comme extension, il est toujours recommandé d'utiliser ASP comme extension pour introduire des fichiers ici. Lorsque ces codes s'exécutent sur un serveur Web avec un mécanisme de sécurité médiocre, vous pouvez parcourir le contenu du fichier importé en entrant simplement la barre d'adresse (Inc est l'extension). Le type (tel que Inc) n'est pas défini, le fichier s'affiche dans le code source.
Ne mettez pas le fichier de base de données dans la structure du site Web, de sorte que lorsqu'une personne malveillante obtient le chemin de la base de données, il peut facilement obtenir la base de données puis modifier le contenu de la base de données arbitrairement. Une meilleure approche consiste à établir un DSN (nom de la source de date) pour la base de données et à accéder directement au DSN lors de l'accès à la base de données.
Chacune des huit techniques d'optimisation de codage ASP ci-dessus est très importante et oblige tout le monde à le ressentir avec soin et vraiment à le comprendre pour devenir leur propre truc.