Inhalt
Vorwort
1 Wie .NET und ASP.NET funktionieren
2 Installation
3 Hinweise zu VB.NET
4 »Hallo, Welt!« – Ein ASP.NET-Crashkurs
5 Die Page-Klasse
6 HTML-Serversteuerelemente
7 Validierung von Anwendereingaben
8 Webserversteuerelemente
9 Webserversteuerelemente für die Darstellung von Listen
10 Webserversteuerelemente selbst erstellen
11 Der Status von Seiten, Sitzungen und Applikationen
12 ASP.NET und Datenbanken
13 »Wer darf was?« ASP.NET und Sicherheit
14 Webanwendungen erstellen und konfigurieren
15 Leistungssteigerung durch Caching
16 Web Services
A Anhang
Index
Download (ca 14,3 MB)
Buch bestellen (29,90 EUR)
Ihre Meinung?@
<< zurück | Galileo Computing / <openbook> / Einstieg in ASP.NET | vor >>
Einstieg in ASP.NET von Matthias Lohrer
| Kapitel 15 Leistungssteigerung durch Caching
|  | 15.1 Ganze Seiten cachen
|  |  | 15.1.1 Formulare cachen
|  | 15.2 Teile von Seiten cachen
|  |  | 15.2.1 Benutzersteuerelemente cachen, die Formulare enthalten
|  | 15.3 Cache-Einstellungen mit der Klasse HttpCachePolicy programmgesteuert beeinflussen
|  | 15.4 Beliebige Daten und Objekte im Cache ablegen
|  | 15.5 Den Cache automatisch aktualisieren
|  |  | 15.5.1 Den Cache vom Inhalt einer XML-Datei abhängig machen
|  |  | 15.5.2 Weitere Möglichkeiten, den Cache abhängig zu machen
|  |  | 15.5.3 Den Cache über Prioritäten steuern
|  |  | 15.5.4 Reagieren, wenn ein Eintrag aus dem Cache gelöscht wird
|  | 15.6 Allgemeine Tipps zur Steigerung der Performance
|  | 15.7 Weiterführende Ressourcen
## 15.2 Teile von Seiten cachen Wenn Sie eine Seite nicht komplett cachen können, weil sich einzelne Bestandteile stets ändern, dann können Sie trotzdem vom Caching profitieren, indem Sie diejenigen Bestandteile, die relativ konstant sind, in Webbenutzersteuerelementen ablegen. Innerhalb eines solchen Webbenutzersteuerelements können Sie dann ebenfalls die OutputCache-Direktive angeben. Hier wieder ein simples Beispiel. Die Datei cache_04.aspx zeigt die Uhrzeit ungecacht an. Außerdem bindet die Seite das Webbenutzersteuerelement cache_04.ascx ein. cache_04.ascx macht auch nichts anderes, als die Uhrzeit anzuzeigen, aber dieses Steuerelement wird zehn Sekunden lang in einem Cache gehalten. Das Resultat: Die obere Uhrzeit, die direkt in der Seite gerendert wird, ändert sich bei jedem Reload. Die untere Uhrzeit, die aus dem gecachten Steuerelement stammt, ändert sich jeweils frühestens nach Ablauf von zehn Sekunden. Wie in Abbildung 15.3 zu sehen ist, werden also meistens unterschiedliche Uhrzeiten angezeigt. Hier klicken, um das Bild zu Vergrößern Abbildung 15.3 Seiten lassen sich teilweise cachen, indem Fragmente in Benutzersteuerelemente ausgelagert werden.
    <!-- cache_04.aspx -->
    <%@ Page Language="VB" Debug="True" Strict="True" %>
    <%@ Register Tagprefix="mlohrer"
                 Tagname="uhrzeit"
                 src="cache_04.ascx" %>
    <html><head>
    <title>Ein Webbenutzersteuerelement cachen</title>
    </head><body>
    <h3>Ein Webbenutzersteuerelement cachen</h3>
    <p>Ungecacht ist es jetzt
    <% = now.ToLongTimeString() %> Uhr.</p>
    <mlohrer:uhrzeit runat="server" />
    </body></html>
    <!-- cache_04.ascx -->
    <%@ Control %>
    <%@ OutputCache Duration="10" VaryByParam="none" %>
    <p>Mit Cache ist es jetzt
    <% = now.ToLongTimeString() %> Uhr.</p>
Die OutputCache-Attribute VaryByHeader und Location können Sie nicht in Benutzersteuerelementen verwenden. ### 15.2.1 Benutzersteuerelemente cachen, die Formulare enthalten Auch ein Benutzersteuerelement kann Formulare enthalten. Dementsprechend können Sie auch in Benutzersteuerelementen in der OutputCache-Direktive das Attribut VaryByParam beziehungsweise alternativ das Attribut VaryByControl verwenden. Als Beispiel enthält cache_05.aspx die Hauptseite. In diese Seite ist das Benutzersteuerelement cache_05.ascx eingebettet, das die Ampelfrage enthält. Abbildung 15.4 zeigt die Darstellung im Browser.
    <!-- cache_05.aspx -->
    <%@ Page Language="VB" Debug="True" Strict="True" %>
    <%@ Register Tagprefix="mlohrer"
                 Tagname="ampel"
                 src="cache_05.ascx" %>
    <html><head>
    <title>Ein Webbenutzersteuerelement
    mit Formular cachen</title>
    </head><body>
    <h3>Ein Webbenutzersteuerelement mit
    Formular cachen</h3>
    <p>Ungecacht ist es jetzt
    <% = now.ToLongTimeString() %> Uhr.</p>
    <mlohrer:ampel runat="server" id="io" />
    </body></html>
    <!-- cache_05.ascx -->
    <%@ Control %>
    <%@ OutputCache Duration="10"
                    VaryByControl="AmpelListe" %>
    <script runat="server">
    Sub auswahl (ByVal Sender As Object, _
                 ByVal E As EventArgs)
       If AmpelListe.selectedIndex <> -1 Then
          Select Case AmpelListe.SelectedItem.value
             Case "1"
                ausgabe.InnerText ="Leider falsch!"
             Case "2"
                ausgabe.InnerText ="Das ist richtig!"
          End Select
       End If
    End Sub
    </script>

    <h3>Hier beginnt das gecachte Benutzersteuerelement
    mit Formular</h3>
    <p>Mit Cache ist es jetzt
    <% = now.ToLongTimeString() %> Uhr.</p>
    <form runat="server" id="myForm">
    Wann darf ein Fußgänger die Straße überqueren?<br>
    <asp:RadioButtonList id="AmpelListe" runat="server"
         RepeatColumns="1"
         TextAlign="Right"
         OnSelectedIndexChanged="auswahl">
         <asp:ListItem text="Bei Rot" value="1" />
         <asp:ListItem text="Bei Grün" value="2" />
    </asp:RadioButtonList><br>
    <asp:Button id="btnOK" runat="server"
         Text="  OK  " /><br>
    <p id="ausgabe" runat="server" />
    </form>
Hier klicken, um das Bild zu Vergrößern Abbildung 15.4 Auch ein Benutzersteuerelement mit enthaltenem Formular lässt sich in mehreren Versionen cachen. cache_05.ascx verwendet in seiner OutputCache-Direktive das Attribut VaryByControl="AmpelListe". Alle Varianten des Steuerelements AmpelListe werden dadurch separat gecacht.
<< zurück | <top> | vor >>
Zum Katalog
Einstieg in ASP.NET bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung

.NET-Bibliothek
| Einstieg in VB.NET
| VB.NET
| Einstieg in C#
| Visual C#
| VB.NET und Datenbanken

Empfehlung
| Einstieg in XML

Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

MyGalileo
Der Service für registrierte Leser: Info

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