Empfohlen: Nutzen Sie die URL -Zuordnung von ASP.NET 2.0 gut Einführung: URL -Zuordnung ist eine neue Funktion in ASP.NET 2.0. Die URL -Mapping -Technologie hilft uns, eine bestimmte URL einer anderen URL zuzuordnen. Um zu verstehen, nehmen wir an, dass Sie eine Seite namens homepage.aspx auf der Website haben, um auf die Homepage zuzugreifen, und alle Benutzer verwenden sie auch
9.3.5 DatencacheZunächst ist es wichtig zu beachten, dass beide Daten -Cache- und Datensatz -Set -Cache zur Verbesserung der Leistung verwendet werden, die beiden jedoch irrelevant sind. Der Datencache ist ein temporärer Datenspeicherbereich, der die Verwendung von Daten im Cache ermöglicht, anstatt neue Daten zu regenerieren. Dies gilt nur für Daten, die nicht häufig verändert werden, sondern mehrmals zugegriffen werden.
Eine der einfachsten Möglichkeiten, Daten in ASP zu unterbinden, besteht darin, Anwendungs- und Sitzungsvariablen zu verwenden. Angenommen, es gibt einige Webseiten, die einen Buchtyp auswählen müssen. Unter normalen Umständen kann eine Einschlussdatei mit den folgenden Funktionen erstellt werden.
<%
FunktionsbuchTypes ()
Dim Rsbooktypes
Dimer Strquote
Strquote = chr (34)
Setzen Sie rsbookTypes = server.createObject (adodb.recordset)
'Holen Sie sich die Buchtypen
rsbooktypes.open USP_Booktypes, Strconn
Antwort.Write <select name = & strquote & lstbooktype & strquote &>
Zwar nicht rsbooktypes.eof
Response.write & <option> & rsbooktypes (Typ) & </option>
rsbooktypes.Movenext
Wend
Antwort.Write & </select>
rsbooktypes.close
Rsbooktypes setzen = nichts
Endfunktion
%>
Auf diese Weise wird einfach eine gespeicherte Prozedur aufgerufen, um den Typ des Buches beim Erstellen einer ausgewählten Liste zu erhalten. Der Nachteil des obigen Code ist, dass jedes Mal, wenn die Funktion aufgerufen wird, auf die Datenbank zugegriffen werden muss. Daher modifizieren Sie diese Funktion neu.
<%
FunktionsbuchTypes ()
Dim Rsbooktypes
Dimer Strquote
Dim Strlist
'Sehen Sie, ob sich die Liste im Cache befindet
STRLLST = application (bookTypes)
Wenn Strlist = dann
»Nicht zwischengespeichert, also erstellen Sie die Liste und zwischenstrahlen Sie sie
Strquote = chr (34)
Setzen Sie rsbookTypes = server.createObject (adodb.recordset)
'Holen Sie sich die Buchtypen
rsbooktypes.open USP_Booktypes, Strconn
STRLST = <SELECT NAME = & Strquote & lstBookType & Strquote &>
Zwar nicht rsbooktypes.eof
STRLST = STRLST & <OPTION> & RSBOOKTYPES (Typ) & </option>
rsbooktypes.Movenext
Wend
STRLLST = STRLST & </SELECT>
rsbooktypes.close
Rsbooktypes setzen = nichts
'Überprüfen Sie die Liste
Application (bookTypes) = strlist
Ende wenn
BookTypes = strlist
Endfunktion
%>
Dieser Code öffnet nicht nur den Datensatzsatz, sondern prüft, ob der Wert der Anwendungsvariablen -BuchType leer ist. Wenn nicht leer, wird der Inhalt der Variablen verwendet. Wenn leer, wird der Datensatz wie zuvor geöffnet. Sobald die erste Person diese Routine ausgeführt hat, sind die Daten natürlich zwischengespeichert, sodass dies nur für die Daten nützlich ist, die nicht oft geändert werden.
Wenn Sie Daten auf Benutzerbasis zwischenspeichern möchten, können Sie Variablen im Sitzungsbereich verwenden. Sie müssen jedoch beachten, dass die Sitzung ein Ablaufdatum hat. Nach Ablauf wird die Sitzungsschichtvariable zusammen mit der Sitzung storniert, und der Code kann den Lauf beenden.
Unter Verwendung des Tools von Web Application Stress (WOS) wurden die Analyseergebnisse in Tabelle 9-4 erhalten:
Tabelle 9-4-Analyseergebnisse, die verwendet wurden, waren Tools
Verfahren
Seitenklicks
Kein Cache
190
Einen Cache haben
11000
Es ist offensichtlich, dass sich die Leistung verbessert hat. Verwenden Sie jedoch nicht die obige Methode, um alles zu zwischenstrahlen. Schließlich gilt dieser Ansatz nur für Daten, die zur Anzeige formatiert wurden. Beachten Sie außerdem, dass der Webserver, wenn er nur einer bestimmten Person dient, kaum eine typische Webservernutzung ist. Mit der Verwendung können Sie mehrere Benutzer auf einem einzigen Server simulieren, sodass Sie Ihre Anwendung realistischer testen können.
Durch die Simulation einer bestimmten Anzahl von Benutzern kann das Webanwendungsstress -Tool die Toleranz von Webseiten testen. Das Tool verfügt über eine einfache grafische Schnittstelle, die sehr einfach zu bedienen ist. Weitere Informationen finden Sie unter http://homer.rte.microsoft.com/ oder laden Sie das Tool herunter.
Cache -Objekte
Was soll ich tun, wenn ich nicht formatierte Daten zwischenspeichern möchte? Kann es an verschiedenen Orten auf unterschiedliche Weise verwendet werden? Natürlich können Sie dies auch mit Anwendungs- oder Sitzungsvariablen tun. Betrachten Sie den Titel des Buches. Möglicherweise möchten Sie diesen Titel auf mehreren Seiten verwenden, möglicherweise alle Titel in einer Tabelle anzeigen oder in einem Listenfeld anzeigen, aus dem Benutzer auswählen können.
Objekte können in Anwendungs- oder Sitzungsvariablen zwischengespeichert werden. Es gibt jedoch zwei Hauptprobleme, auf die geachtet werden muss:
· In Anwendungsvariablen gespeicherte Objekte müssen kostenlose Threads unterstützen, daher müssen sie kostenlose Threadobjekte oder zwei Thread -Objekte sein. Dies bedeutet, dass von VB erstellte Komponenten in der Anwendungsvariablen nicht zwischengespeichert werden können.
· Speichern eines Einheits -Thread -Objekts im Sitzungsstatus bedeutet, dass der Thread, der das Objekt erstellt hat, der einzige Thread ist, der darauf zugreifen kann. Daher kann IIS die Thread -Verwaltung nicht besser vervollständigen, da jede Seite, die versucht, auf dieses Objekt zuzugreifen, warten muss, bis der ursprüngliche Thread die Seite serviert. Dadurch wird jede Chance getötet, die Anwendung zu erweitern.
Zur Diskussion über Threading -Probleme siehe Kapitel 15.
Standardmäßig wird ADO als Einheits-Thread-Objekt geladen, vor allem, weil einige OLE DB-Anbieter nicht mit Thread-Safe sind. Im ADO-Installationsverzeichnis befindet sich eine Registrierungsdatei, die ADO in ein Modell mit zwei Threads umwandelt, wodurch ADO-Objekte in Anwendungs- und Sitzungsobjekten sicher gespeichert werden können.
Sie könnten denken, dass alle Probleme gelöst werden und eine erhebliche Geschwindigkeitssteigerung durch die Verwendung verschiedener Arten von Objekten erreicht werden kann, aber dies ist nicht unbedingt der Fall. Viele haben erkannt, dass bei der Verbindung mit einer Datenbank ein relativ teurer Betrieb ist, können zwischengespeicherende Verbindungsobjekte bei der Wiederverbindung viel Zeit sparen. Dies ist wahr, aber das zwischenstrichene Verbindungsobjekt bedeutet, dass die Verbindung niemals geschlossen wird, sodass der Verbindungs -Cache -Pool relativ ineffizient ist. Eine Idee, die eine Verbindung zu Cache -Pools herstellt, besteht darin, die auf dem Server verwendeten Ressourcen zu reduzieren und Objekte im ASP -Zustand zu zwischenstrahlen. Tatsächlich werden sie auch erhöht, da jeder Objekt -Cache die Ressourcen des Servers aufnimmt, was die Effizienz des Webservers für eine beliebte Website erheblich verringert.
Verknüpfungsobjekte sollten also nicht gespeichert werden, aber was ist mit Rekordobjekten, insbesondere von getrennten Datensätzen? Angenommen, ADO hat sich von einem Einheits -Thread zu einem doppelten Thread verändert, gibt es keinen Grund, dies nicht zu tun, solange Sie genau wissen, was Sie tun. Denken Sie nicht, dass dies die Leistung von ASP -Seiten automatisch verbessern wird. Jede zwischengespeicherte Datensatzeinstellung nimmt die Ressourcen des Servers in Bezug auf Speicher und ASP -Verwaltung auf. Daher können Sie keine großen Datensatzsätze zwischenspeichern.
Teilen: ASP Lesen und Schreiben Sie die Registrierungstabelle Ein Beispiel: Im Folgenden finden Sie den referenzierten Inhalt: <%dim ReadComputername Set ReadComputername = createObject (wscript.shell) dim Computname, Reg.