15.3 Cache-Einstellungen mit der Klasse HttpCachePolicy programmgesteuert beeinflussen
 
Die Cache-Eigenschaften von Seiten und Webbenutzersteuerelementen können Sie nicht nur deklarativ, sondern auch programmgesteuert beeinflussen.
|
Die Cache-Eigenschaften von Benutzersteuerelementen können Sie mit Hilfe der Klasse PartialCachingAttribute beeinflussen. |
|
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>
 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
|