Eine schnellere Website mit ASP.NET-Caching

Während das vorrangigste Ziel der Web-Entwicklung die Funktionalität ist, scheint diese die Performance auf den zweiten Platz verwiesen zu haben. Letztendlich ist eine Site, die niemand verwendet, keinem von Nutzen. Allerdings verliert eine Site ihre Nutzer, wenn die Performance nicht stimmt.

Das Zwischenspeichern (Caching) von häufig verwendeten Webseiten-Daten hilft, die Performance-Werte von Webanwendungen positiv zu beeinflussen. ASP.NET bietet Caching-Möglichkeiten, die sich leicht in Anwendungen einbinden lassen und deren Performance steigern.

Unter ASP.NET 1.x gibt es drei Möglichkeiten, Caching in Web-Anwendungen einzusetzen:

  • Page Output Caching: Die dynamisch erzeugten Webinhalte werden zwischengespeichert.

  • Page Fragment Caching: Teile der Webseite werden zwischengespeichert.

  • Page Data Caching: Anhand eines Programms werden Daten/Objekte einer Webseite zwischengespeichert.

Dieser Artikel befasst sich mit dem Page Output Caching.

Page Output Caching

Output Caching kann eingesetzt werden, wenn die Inhalte einer Seite relativ statisch sind und diese zwischengespeichert werden kann. Das Zwischenspeichern häufig genutzter Seiten resultiert oft in einer bedeutenden Geschwindigkeitszunahme. Dabei werden die Seitenanfragen zunächst dynamisch generiert, und alle späteren Anfragen werden über den Cache bedient. Bei viel genutzten Anwendungen ergibt sich so eine enorme Performance-Steigerung.

Der Hauptaspekt beim Zwischenspeichern einer Seite ist das Ablaufdatum. Es gibt an, wie lange Inhalte im Cache verbleiben, bevor sie erneut von der ursprünglichen Quelle abgerufen werden. Das Ablaufdatum kann über den Code oder über die OutputCache-Direktive auf Seitenebene aufgerufen werden. Es schließt den Duration-Parameter mit ein, der bestimmt, wie lange ein Seitenbestandteil im Cache bleibt (in Sekunden). Neben Duration umfasst die OutputCache-Direktive die folgenden Attibute:

  • Location:
    Der Platz des Zwischenspeichers. Die gültigen Werte sind: Any, Client, Downstream, None, Server und ServerAndClient. Der voreingestellte Wert ist Any.
  • CacheProfile:
    Die Bezeichnung der Cache-Einstellungen, die mit einer bestimmten Seite verbunden sind. Es handelt sich um ein optionales Element ohne voreingestellten Wert.
  • NoStore:
    Ein Bool’scher Wert, der anzeigt, ob eine weitere Speicherung sensibler Daten unterbunden werden soll.
  • Shared:
    Ein Bool’scher Wert, der bestimmt, ob Benutzersteuerelemente auf mehreren Seiten eingesetzt werden können
  • VaryByCustom:
    Jeder Text, der Bedingungen für benutzerdefiniertes Caching von Ausgabewerten darstellt.
  • VaryByHeader:
    Eine durch Semikola getrennte Liste von HTTP-Headern, die zur Variation des Output-Caches verwendet werden.
  • VaryByParam:
    eine durch Semikola getrennte Liste von Strings, die zur Variation des Output-Caches verwendet werden.

Die am häufigsten verwendeten Schlüsselelemente sind Duration und VaryByParam, mit dem man auf Basis von Parametern verschiedene Caches auf Seitenebene einrichten kann.

Diese Parameter korrespondieren mit Querystring-Werten, die mit HTTP GET-Anfragen versandt wurden, oder mit HTTP POST-Anfragen versandten Formularparametern. Wenn dieses Attribut auf Verwendung mehrerer Parameter gesetzt ist, enthält das Output-Cache für jede Kombination der verwendeten Parameter eine unterschiedliche Version des abgefragten Dokuments. Mögliche Werte sind Keine, ein Asterisk(*) und jeder Name eines gültigen Querystrings oder eines POST-Parameters.

Listing A Enthält ein einfaches Beispiel für Caching auf Seitenebene mit einer C#-Seite, die Mitarbeiterdaten aus der altehrwürdigen Northwind-SQL-Server-Datenbank lädt. Die Daten sind relativ statisch, bleiben also fünf Minuten lang im Cache. Listing B enthält den entsprechenden VB.NET-Code.

Listing A


Listing B


Themenseiten: Software, Webentwicklung

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Eine schnellere Website mit ASP.NET-Caching

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *