ASP (Active Server Page) ist eine dynamische Webseitenentwicklungstechnologie, die auf der PWS (Personal Web Server) und IIS (Internet Information Server) basiert, die von Microsoft gestartet wurde und jetzt ausgereifter und perfekter wird. Hier haben wir nur einige einfache Diskussionen zur Codeoptimierung.
8 ASP -Codierungsoptimierungstechniken:
1. Deklarieren Sie VBScript -Variablen
In ASP wird VBScript mit starker Unterstützung versehen und kann VBScript -Funktionen und -Methoden nahtlos integrieren, was eine große Bequemlichkeit für die Erweiterung der vorhandenen Funktionen von ASP bietet. Da das Konzept der Variablentypen in ASP verschwommen ist, sind viele Programmierer es gewohnt, während der Interaktion zwischen ASP und VBScript keine VBScript -Variablen zu deklarieren, was die Analysebelastung des Servers erhöht und somit die Antwortanforderung des Servers beeinflusst.
In Anbetracht dessen können wir den Benutzer dazu zwingen, variable Erklärungen in VBScript durchzuführen, genau wie wir den Benutzer dazu zwingen, variable Erklärungen in VB durchzuführen. Die Implementierungsmethode besteht darin, zu Beginn der ASP -Programmlinie eine explizite Option von <% zu platzieren.
2. codieren die URL -Adresse
Wenn wir ASP verwenden, um eine URL -Adresse mit Parametern und Sprung dynamisch zu erzeugen, ist es normal, IE zu analysieren, aber wenn NetScape durchsucht, gibt es Fehler wie folgt:
- Httperror400
- 400BadRequest
- DuetomalformedSyntax, in der geeignet war, konnte diesen nicht stört.
- Ich sollte nicht repeatherquestwithoutmodifications.
Die Lösung besteht darin, die Urlencode-Methode des ASP-integrierten Serverobjekts zu verwenden, um die generierten URL-Parameter zu codieren.
- <%
- Url = xur.asp
- var1 = userername = & server.urlencode (xur)
- var2 = & company = & server.urlencode (xurstudio)
- var3 = & mone = & server.urlencode (021-53854336-186)
- response.redirecturl &? & var1 & var2 & var3
- %>
3.. Löschen Sie das Objekt
Verwenden Sie nach der Verwendung des Objekts zuerst die Close -Methode, um die vom Objekt besetzten Systemressourcen aufzugeben. Damals habe ich meine IIS abgestürzt, indem ich mehr als 100 Datensätze auf einer Seite ohne klare Objekte erstellt habe. Der folgende Code verwendet den Datenbankinhalt, um eine Dropdown-Liste zu erstellen. Das Codebeispiel lautet wie folgt:
- <%mydsn = dsn = xur; uid = xur; pwd = xur
- mysql = select*fromAuthorswhereau_id < 100
- setConntemp = server.createObject (adodb.Connection)
- conntemp.openmydsn
- setRStemp = connTemp.execute (MySQL)
- ifrstemp.eofthen
- Antwort.Write -Datenbank ist leer
- response.writemysql
- connTemp.close
- setConntemp = nichts
- Antwort.end
- Endif%>
- <%dountilrstemp.eof%>
- <%
- rstemp.Movenext
- Schleife
- rstemp.close
- SetRStemp = nichts
- connTemp.close
- setConntemp = nichts
- %>
4. Erstellen Sie die SQL -Abfrage mit Zeichenfolgen
Die Verwendung von Saiten zum Festlegen von Abfragen beschleunigt die Parsengeschwindigkeit des Servers nicht. Es wird jedoch immer noch empfohlen, Zeichenfolgen anstelle von einfachen Abfrageberichten zur Abfrage zu verwenden. Der Vorteil davon ist, dass es schnell das Problem des Programms entdecken kann, wodurch das Programm erleichtert und effizient generiert wird. Beispiele sind wie folgt:
- <%MySQL = SELECT*
- MySQL = Mysql & FromemPublishers
- mysql = mysql & whirestate = 'ny' '
- response.writemysql
- setRStemp = connTemp.execute (MySQL)
- rstemp.close
- SetRStemp = nichts
- %>
5. Anwendungsfall, um die Bedingung auszuwählen
Versuchen Sie bei einer bedingten Auswahl, Fallanweisungen zu verwenden und zu vermeiden, wenn Anweisungen verwendet werden. Durch die Verwendung von Fallanweisungen kann das Programm fließbar werden und schneller ausgeführt werden als bei Anweisungen. Beispiele sind wie folgt:
- <%
- Fei = 1to1000
- n = i
- Response.writeaddsuffix (n) & <BR>
- NÄCHSTE
- %>
- <%
- FunctionAddsuffix (num)
- numpart = rechts (num, 1)
- SelectCasenUpNart
- Fall1
- Ifinstr (num, 11) dann
- num = num & th
- ANDERS
- num = num & st
- Endif
- Fall2
- Ifinstr (num, 12) dann
- num = num & th
- ANDERS
- num = num & nd
- Endif
- Fall3
- Ifinstr (num, 13) dann
- num = num & th
- ANDERS
- Num = num & rd
- Endif
- Fall4
- num = num & th
- Fallelse
- num = num & th
- Endauswahl
- Addsuffix = num
- Endfunktion
- %>
6. Verwenden Sie Konstanten, die in der adovbs.inc -Datei definiert sind, um den Datensatzsatz zu öffnen
Beim Öffnen eines Datensatzes können Sie den Cursor -Typ und den Sperrtyp definieren, den der Datensatzsatz öffnet. Es gibt einige Konstanten in der adovbs.inc -Datei, um diese Typen zu definieren. Die adovbs.inc -Datei wird im Verzeichnis/inetpub/iissamples/iiSAmples gespeichert. Im Folgenden finden Sie einige häufig verwendete Cursortypen und Sperrtypen.
Cursor -Typ: Cursory Cursor kann nur vorwärts gehen. von anderen Benutzern.
Sperrtyp: AdlockReadoney kann in der Datensatzmenge nicht geändert werden.
- <!-#includevirtual =/adovbs.inc->
- <%
- connectMe = dsn = xur; uid = xur; pwd = xur
- SQLTEMP = SELECT*FromPublisherWherename = 'xur' '
- setRStemp = server.createObject (adodb.recordset)
- rstemp.opensqltemp, Connectme, adopta
- response.writerStemp.recordCount & Recordsin <BR> & SQLTEMP
- rstemp.close
- SetRStemp = nichts
- %>
7. Vermeiden Sie die Objektdefinition in der global.asa -Datei
Da die Inhalte in der global.asa -Datei durch alle Dateien in der Website verwiesen werden können, kann das Definieren von Objekten in der global.asa -Datei eine Menge Vervielfältigung speichern. Beispielsweise wird in der Funktion application_onstart in global.asa die folgende Definition vorgenommen:
- <%SUBAKPLICATION_ONSTART
- setApplication (theconn) = server.createObject (adodb.Connection)
- EndsUb%>;
Auf diese Weise können Sie ähnliche Referenzen in jedem Code auf der Website erstellen:
- <%
- MySQL = SELECT*FromPublisherSwherestate = 'xur' '
- setRStemp = application (theconn) .execute (MySQL)
- %>
In ähnlicher Weise kann das Datensatzsatzobjekt in der Funktion Session_onstart erstellt werden
- <%SubSession_onstart
- setSession (rSTemp) = server.createObject (adodb.RecordSet)
- Endsub%>
Anschließend werden die folgenden Zitate auf der Website angegeben:
- <%
- MySQL = SELECT*FromPublisherSwherestate = 'xur' '
- setSession (rstemp) = connTemp.execute (MySQL)
- %>
Dies hat jedoch auch einen großen negativen Einfluss. Leistung. .
Lösung: Erstellen Sie eine ASP -Seite, um Objekte zu definieren, und stellen Sie diese ASP -Seite auf der Seite ein, auf der diese Objekte aufgerufen werden müssen. Unter der Annahme, dass der ASP -Seitenname des definierten Objekts definiert ist.
Bei der Einführung von Seiten ist es am besten, <%@Language = VBScript%> Anweisung in die zu eingeführte ASP -Datei aufzunehmen. Denn in der ASP -Datei kann es nur ein von @definierter Skript analysieren.
8. Sicherheitsschutz
ASP bietet einen guten Code -Schutzmechanismus, und der gesamte ASP -Code wird auf der Serverseite ausgeführt und gibt nur das Ergebnis der Client -Code -Ausführung zurück. Trotzdem können Sie in der alten Version von IIS den Quellcode von ASP nach dem Dateinamen anzeigen :: $ data, der bereits in den Bereich der Webserversicherheit fällt und nicht im Rahmen dieses Artikels liegt. Das Folgende sind zwei einfache Sicherheitsvorkehrungen.
Obwohl empfohlen wird, Dateien mit INC ASP als Erweiterung einzuführen, wird weiterhin empfohlen, ASP als Erweiterung zu verwenden, um Dateien hier einzuführen. Wenn diese Codes auf einem Webserver mit schlechtem Sicherheitsmechanismus ausgeführt werden, können Sie den Inhalt der importierten Datei durch einfach die Adressleiste durchsuchen (INC ist die Erweiterung). Typ (wie z. B. INC) ist nicht definiert, die Datei wird im Quellcode angezeigt.
Fügen Sie die Datenbankdatei nicht in die Website -Struktur ein, damit eine böswillige Person den Datenbankpfad erhält, kann sie die Datenbank problemlos erhalten und dann den Datenbankinhalt willkürlich ändern. Ein besserer Ansatz besteht darin, einen DSN (Datumsquellenname) für die Datenbank einzurichten und direkt beim Zugriff auf die Datenbank auf den DSN zugreifen zu können.
Jede der oben genannten acht ASP -Codierungsoptimierungstechniken ist sehr wichtig und erfordert, dass jeder sie sorgfältig erleben und wirklich versteht, um sein eigenes Ding zu werden.