Recommandé: utilisez des procédures stockées pour implémenter la pagination de données ASP 1. Créer la table Tiku_koushiif existe (sélectionnez * dans dbo.sysObjects où id = object_id (n '[dbo]. [Tiku_koushi]') et objectProperty (id, n'isUserable ') = 1) Drop Table
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.
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 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:
Erreur HTTP 400
400 MAUVAISE DEMANDE
En raison de la syntaxe mal formée, la demande n'a pas pu être comprise par le serveur.
Le client ne doit pas répéter la demande sans modifications.
La solution consiste à utiliser la méthode URLencode de l'objet de serveur intégré ASP pour coder URL les paramètres URL générés. L'exemple est le suivant:
<%
Url = xur.asp
var1 = username = & server.urlencode (xur)
var2 = & company = & server.urlencocode (xurstudio)
var3 = & phone = & server.urlencode (021-53854336-186)
Response.Redirect URL &? & 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; Définissez ensuite 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 * from Auteurs où aU_id <100
Définir ConnTemp = Server.CreateObject (ADODB.Connection)
ConnTemp.Open MyDSN
SET RSTEMP = ConnTemp.Execute (MySQL)
Si rstemp.eof alors
réponse. La base de données de l'écriture est vide
réponse.Write mysql
ConnTemp.close
Définir ConnTemp = Rien
réponse.
terminer si%>
<% faire jusqu'à rtemp.eof%>
<%
rstemp.movènext
boucle
rtestp.close
Définir RSTEMP = Rien
ConnTemp.close
Définir ConnTemp = 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. Au contraire, il augmentera également le temps 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 et des éditeurs
mysql = mysql & where state = 'ny'
réponse.Write mysql
SET RSTEMP = ConnTemp.Execute (MySQL)
rtestp.close
Définir RSTEMP = 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:
<%
Pour i = 1 à 1000
n = i
Response.Write AddSuffix (n) & <br>
SUIVANT
%>
<%
Fonction AddSuffix (NUM)
Numpart = à droite (num, 1)
Sélectionner le cas Numpart
Cas 1
Si instr (num, 11) alors
num = num & th
AUTRE
num = num & st
Terminer si
Cas 2
Si instr (num, 12) alors
num = num & th
AUTRE
num = num & nd
Terminer si
Cas 3
Si instr (num, 13) alors
num = num & th
AUTRE
num = num & rd
Terminer si
Cas 4
num = num & th
Cas d'autre
num = num & th
Fin de sélection
AddSuffix = num
Fonction finale
%>
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. Voici plusieurs types de curseur couramment utilisés et types de verrouillage.
Type de curseur:
Le curseur adoptif-fowardly ne peut que progresser; Le curseur AdoptenKeyset peut avancer ou vers l'arrière. Si un utilisateur ajoute un enregistrement, le nouvel enregistrement n'apparaîtra pas dans le jeu d'enregistrements; Le curseur adoptendamique est dynamique et aléatoire; L'ensemble d'enregistrements d'adoption ne reflète pas les modifications d'enregistrement causées par d'autres utilisateurs.
Type de verrouillage:
AdlockReadoney ne peut pas modifier les enregistrements dans l'ensemble d'enregistrements; Adlockpesimitics le verrouille lors de la modification d'un enregistrement; AdlockoPtimstic verrouille la méthode de mise à jour des enregistrements uniquement lorsque les enregistrements AdlockBatchopeImstic ne peuvent être mis à jour que par lots.
<! - # Inclut virtual = / adovbs.inc ->
<%
connectMe = dsn = xur; uid = xur; pwd = xur
sqlTemp = select * chez les éditeurs où name = 'xur'
SET RSTEMP = Server.CreateObject (ADODB.RecordSet)
rstemp.open sqlTEMP, ConnectMe, AdoptenStatic, Adlockoptimstic
Response.Write rstemp.recordCount & Records dans <br> & SqlTemp
rtestp.close
Définir RSTEMP = 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:
<% Sub APPLICATION_ONSTART
Définir l'application (theConn) = Server.CreateObject (Adodb.Connection)
Fin sous%>;
Cela vous permet de faire des références similaires dans n'importe quel code sur le site:
<%
mysql = select * parmi les éditeurs où State = 'xur'
SET RSTEMP = Application (theConn) .Exécute (MySQL)
%>
De même, l'objet d'enregistrement d'enregistrement peut être créé dans la fonction session_onstart
<% Sub session_onstart
set session (rstemp) = server.createObject (adodb.recordSet)
Terminer sous%>
Ensuite, les citations suivantes sont faites sur le site:
<%
mysql = select * parmi les éditeurs où State = 'xur'
set session (RSTEMP) = ConnTemp.Execute (MySQL)
%>
Cependant, cela a également un grand impact négatif. Étant donné que les variables d'application et de session ne libèrent que les ressources occupées lors de la fermeture du site Web, les paramètres de session gaspilleront beaucoup de mémoire inutile et, à l'heure actuelle, la variable d'application devient un goulot d'étranglement des performances du serveur.
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.
<! - # Inclure virtual = / define.asp ->
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). En effet, sur le serveur Web, si une bibliothèque de connexion dynamique qui résout un certain type (tel que Inc) n'est pas définie, 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.
Partager: ASP Conseils: Améliorer l'efficacité de la collecte des demandes Améliorer l'efficacité de l'utilisation de la collection de demandes pour accéder à une collection ASP pour extraire une valeur est un processus de consommation de ressources longs et informatique. Étant donné que cette opération contient une série de recherches d'ensembles connexes, cela est beaucoup plus lent que d'accéder à une variable locale. Donc, si vous prévoyez d'être dans la page