Galileo Computing < openbook >
Galileo Computing - Programming the Net
Galileo Computing - Programming the Net


Einstieg in ASP.NET von Matthias Lohrer
Einstieg in ASP.NET
gp Kapitel 15 Leistungssteigerung durch Caching
  gp 15.1 Ganze Seiten cachen
    gp 15.1.1 Formulare cachen
  gp 15.2 Teile von Seiten cachen
    gp 15.2.1 Benutzersteuerelemente cachen, die Formulare enthalten
  gp 15.3 Cache-Einstellungen mit der Klasse HttpCachePolicy programmgesteuert beeinflussen
  gp 15.4 Beliebige Daten und Objekte im Cache ablegen
  gp 15.5 Den Cache automatisch aktualisieren
    gp 15.5.1 Den Cache vom Inhalt einer XML-Datei abhängig machen
    gp 15.5.2 Weitere Möglichkeiten, den Cache abhängig zu machen
    gp 15.5.3 Den Cache über Prioritäten steuern
    gp 15.5.4 Reagieren, wenn ein Eintrag aus dem Cache gelöscht wird
  gp 15.6 Allgemeine Tipps zur Steigerung der Performance
  gp 15.7 Weiterführende Ressourcen


Galileo Computing

15.3 Cache-Einstellungen mit der Klasse HttpCachePolicy programmgesteuert beeinflussen  toptop

Die Cache-Eigenschaften von Seiten und Webbenutzersteuerelementen können Sie nicht nur deklarativ, sondern auch programmgesteuert beeinflussen.

gp  Die Cache-Eigenschaften von Benutzersteuerelementen können Sie mit Hilfe der Klasse PartialCachingAttribute beeinflussen.
gp  Die Cache-Eigenschaften von aspx-Seiten stehen über die Eigenschaft Response.Cache zur Verfügung. Diese Eigenschaft gibt ein Objekt vom Typ HttpCachePolicy zurück. Die gewünschten Eigenschaften können Sie beispielsweise in der Page_Load-Prozedur einstellen.

cache_06.aspx demonstriert ein Beispiel. Tagsüber wird der Cache alle fünf Minuten aktualisiert. Nachts, wenn auf der Website keine Änderungen zu erwarten sind, bleibt der Cache jeweils für eine Stunde gültig. Die Darstellung im Browser zeigt Abbildung 15.5.

<!-- cache_06.aspx --> 
<%@ Page Language="VB" Debug="True" Strict="True" %>
<script runat="server">
Dim jetzt As DateTime
Dim cacheDauer As Integer
Sub Page_Load (ByVal Sender As Object, _
               ByVal E As EventArgs)
   ' Ist es jetzt Tag oder Nacht?
   jetzt = DateTime.Now
   If jetzt.Hour <= 8 Or jetzt.Hour >= 18 Then
      ' Die Seiten werden nachts für eine Stunde 
      ' gecacht. 
      cacheDauer = 3600 
   Else
      ' Tagsüber alle 5 Minuten aktualisieren
      cacheDauer = 300
   End If
   Response.Cache.SetExpires _
                        (jetzt.AddSeconds(cacheDauer))
   Response.Cache.SetCacheability _
                             (HttpCacheability.Server)      
End Sub
</script>
<html>
<head><title>Die Cache-Eigenschaften einer aspx-Seite 
programmgesteuert beeinflussen</title></head>
<body>
<h3>Die Cache-Eigenschaften einer aspx-Seite 
programmgesteuert beeinflussen</h3>
<p>Diese Seite wurde gecacht um 
<% = now.ToLongTimeString() %> Uhr.</p>
<p>Der Cache ist gültig bis 
<% = jetzt.AddSeconds(cacheDauer).ToLongTimeString() %> 
Uhr.</p></body></html>

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 15.5 Diese Seite bleibt nachts länger im Cache als tagsüber.

Die Methode SetExpires definiert den genauen Ablaufzeitpunkt, an dem der Cache verfällt. Abhängig von der Tageszeit verwendet die Page_Load-Prozedur entweder den Wert 3600 oder 300. Mit SetCacheability legen Sie fest, wo die Seite gecacht wird. Die Enumeration HttpCacheability stellt die gültigen Werte zur Verfügung.

Tabelle 15.2 zeigt einige häufig verwendete Eigenschaften der Klasse HttpCachePolicy.


Eigenschaft Typ Beschreibung
VaryByHeaders HttpCacheVaryByHeaders Liste aller HTTP-Header, mit denen die Cacheausgabe variiert wird
VaryByParams HttpCacheVaryByParams Liste der Parameter, die sich auf das Zwischenspeichern auswirken und durch GET oder POST erhalten werden
Methoden
SetCacheability (HttpCacheability) Legt die Cache-Art fest. Die HttpCacheability-Enumeration kennt die Werte NoCache, Private (nur auf dem Client), Public (Client und Proxyserver) und Server (nur auf dem Server).
SetExpires (DateTime) Legt den Zeitpunkt fest, an dem der Eintrag verfällt
SetLastModified (DateTime) Definiert den Last-Modified-HTTP-Header
SetSlidingExpiration (Boolean) Legt gleitende Ablaufzeit fest

Tabelle 15.2 Einige Eigenschaften und Methoden der HttpCachePolicy-Klasse

  

Einstieg in VB.NET

VB.NET

Einstieg in C#

Visual C#

VB.NET und Datenbanken

Einstieg in XML




Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de