Beim Öffnen einer ASP-Seite muss die Seite auf die Datenbank zugreifen und dann den Inhalt anzeigen, der den Anforderungen auf der Seite entspricht. Wenn die Datenbank viele Datensätze enthält, ist die Zugriffsgeschwindigkeit der Seite relativ langsam. Die folgenden Methoden können verwendet werden, um die Zugriffsgeschwindigkeit der Seite zu verbessern.
Tipp eins: Verbessern Sie die Effizienz der Verwendung der Request-Sammlung
Der Zugriff auf eine ASP-Sammlung zum Extrahieren eines Werts ist ein zeitaufwändiger und rechenintensiver Prozess. Da dieser Vorgang eine Reihe von Suchvorgängen in verwandten Sammlungen umfasst, ist er viel langsamer als der Zugriff auf eine lokale Variable. Wenn Sie also planen, einen Wert in der Request-Sammlung mehrmals auf der Seite zu verwenden, sollten Sie erwägen, ihn als lokale Variable zu speichern.
Schreiben Sie den Code beispielsweise in der folgenden Form, um die Verarbeitung der Skript-Engine zu beschleunigen:
Kopieren Sie den Codecode wie folgt:
strTitle=Request.Form("Titel")
strFirstName=Request.Form("FirstName")
strLastName=Request.Form("LastName")
If Len(strTitle) Then strTitle=strTitle & " "
Wenn strFirstName="" Dann strFullName=strTitle & " " & strLastName
Elseif Len(strFirstName)=1 Then
strFullName=strTitle & strFirstName & ". " & strLastName
Anders
strFullName=strTitle & strFirstName & " " & strLastName
Ende wenn
Tipp 2: Greifen Sie direkt auf die entsprechende Sammlung zu
Wenn Sie keine Wahl haben, verwenden Sie nicht strPage=Request("page"), um Parameter abzurufen, da dadurch die gesamte Sammlung der Reihe nach durchsucht wird – QueryString, Form, Cookies, ClientCertificate, ServerVarible, bis die erste Übereinstimmung gefunden wird. Der Name des Wert. Dies ist weniger effizient als der direkte Zugriff auf die entsprechende Sammlung und unsicher, es sei denn, es besteht eine absolute Garantie, dass der Wert nicht in einer anderen Sammlung erscheint.
Beispielsweise möchten Sie möglicherweise nach dem Namen eines WEB-Servers suchen, der die Anfrage eines Clients erfüllt. Dies erreichen Sie, indem Sie in der Request.ServerVarables-Sammlung, die in jeder Abfrage erscheint, nach „SERVER_NAME“ suchen. Wenn jedoch auch andere Sammlungen Werte mit dem Namen „SERVER_NAME“ enthalten (bei Schlüsselnamen wird die Groß-/Kleinschreibung nicht beachtet), erhalten Sie bei Verwendung von Request(„server_Name“) falsche Ergebnisse. Zusammenfassend lässt sich sagen, dass nach Möglichkeit direkt auf die entsprechende Sammlung zugegriffen werden sollte.
Tipp 3: Verwenden Sie die Eigenschaft Response.IsClientConnected vor zeitaufwändigen Vorgängen
Die Verwendung von Response.IsClientConnected ist eine nützliche Methode, um zu beobachten, ob der Benutzer noch mit dem Server verbunden ist und die von ASP erstellte Webseite lädt. Wenn der Benutzer die Verbindung trennt oder den Download abbricht, müssen wir keine Serverressourcen mehr für die Erstellung der Webseite verschwenden, da der Pufferinhalt von IIS verworfen wird. Bei Seiten, deren Berechnung viel Zeit in Anspruch nimmt oder die viele Ressourcen verbrauchen, lohnt es sich also, in jeder Phase zu prüfen, ob der Besucher offline ist:
Kopieren Sie den Codecode wie folgt:
… Code zum Erstellen des ersten Teils der Seite
Wenn Response.IsClientConnected, dann
Response.Flush
Anders
Antwort.Ende
Ende wenn
… Code zum Erstellen des nächsten Teils der Seite
Tipp 4: ADO-Vorgänge in ASP optimieren
Im Allgemeinen stellen Daten den eigentlichen Inhalt einer WEB-Site dar. Daher ist es sehr nützlich, ADO-Vorgänge zu optimieren, um die Ausführung von ASP-Code zu beschleunigen:
a. Wählen Sie nur die erforderlichen Spalten aus: Beim Öffnen eines ADO-Recordsets sollten Sie nicht automatisch den Tabellennamen (z. B. SELECT *) verwenden, es sei denn, Sie müssen alle Spalten abrufen. Durch die Verwendung separater Spalten wird die Menge der an den Server gesendeten oder von diesem abgerufenen Daten reduziert. Selbst wenn Sie alle Spalten verwenden müssen, erzielen Sie die beste Leistung, indem Sie jede Spalte einzeln benennen, da der Server die Spaltennamen nicht interpretieren muss.
b. Verwenden Sie nach Möglichkeit gespeicherte Prozeduren. Gespeicherte Prozeduren sind vorkompilierte Programme, die einen vorbereiteten Ausführungsplan enthalten und daher schneller ausgeführt werden als SQL-Anweisungen.
c. Verwenden Sie geeignete Cursor- und Sperrmuster. Wenn Sie lediglich Daten aus dem Recordset lesen und auf dem Bildschirm anzeigen, verwenden Sie das standardmäßige schreibgeschützte Recordset mit Weiterleitungszugriff. Je weniger Arbeit ADO für die Pflege der Details von Datensätzen und Sperren aufwenden muss, desto höher ist die Leistung.
d. Objektvariablen verwenden. Eine sichere Möglichkeit, die Leistung beim Durchlaufen eines Recordsets zu verbessern, besteht darin, Objektvariablen zu verwenden, um auf Mitglieder der Sammlung zu verweisen. Zum Beispiel:
Kopieren Sie den Codecode wie folgt:
Während nicht RsGc.EOF
Response.Write „Projektname:“ & RsGc(„GcMC“) & „(Projektcode:“ & RsGc(„GcCode“) & „)“
RsGc.MoveNext
Wend
Dies kann als folgender Code umgeschrieben werden, um die Ausführung zu beschleunigen:
Kopieren Sie den Codecode wie folgt:
setze GcMc=RsGc("GcMc")
set GcCode=RsGc("GcCode")
While Not rsGc.EOF Response.Write „Projektname:“ & GcMc & „(Projektcode: „ & GcCode & „)“
RsGc.MoveNext
Wend
Der neue Code stellt einen Verweis auf die Objektvariable her, sodass die Objektvariable anstelle der tatsächlichen Variablen verwendet werden kann. Dies bedeutet, dass die Skript-Engine weniger Arbeit zu leisten hat, da weniger Indizes in der Sammlung vorhanden sind.
Tipp 5: Mischen Sie keine Skript-Engines
Wir wissen, dass sowohl VBScript als auch JScript in ASP-Seiten verwendet werden können. Es ist jedoch nicht ratsam, JScript und VBScript gleichzeitig auf derselben Seite zu verwenden. Da der Server zwei (statt einer) Skript-Engine instanziieren und versuchen muss, sie zwischenzuspeichern, erhöht dies die Belastung des Systems in gewissem Maße. Aus Leistungsgründen sollten Sie daher nicht mehrere Skript-Engines auf derselben Seite mischen.