TOC

This article has been localized into German by the community.

Caching:

Ausgabe Cache - Ersetzen

Mit ASP.NET-Version 1.0 und 1.1, gab es keine Möglichkeit, zu steuern, welche Teile einer Seite im Cache gespeichert werden würden, und was noch wichtiger ist: Welche Teile auf jeder Anforderung erzeugt werden würden, egal was passiert. Dies bedeutete, dass die OutputCache-Direktive nicht verwendet werden konnte, wenn nur ein kleiner Teil der Seite bei jeder Anforderung aktualisiert werden musste. Dies hat sich mit ASP.NET 2.0 geändert, wo wir möglicherweise das <asp:Substitution>- Tag verwenden, um Bereiche außerhalb des zwischengespeicherten Inhalts zu erstellen. Werfen Sie einen Blick auf das folgende Beispiel:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ OutputCache duration="120" varybyparam="None" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Caching</title>
</head>
<body>
    <form id="form1" runat="server">
        Cached datestamp:<br />
        <%= DateTime.Now.ToString() %><br /><br />
        Fresh datestamp:<br />
        <asp:Substitution runat="server" id="UnCachedArea" methodname="GetFreshDateTime" />
    </form>
</body>
</html> 

Das Substitution-Tag verwendet ein Attribut namens Methodenname, das den Namen einer Methode enthält, die die Zeichenfolge zur Ausgabe zurückgeben soll. Sobald die Seite geladen ist, unabhängig davon, ob sie aus dem Cache zurückgegeben oder neu generiert wurde, wird diese Methode aufgerufen und das Substitutions-steuerelement mit der zurückgegebenen Zeichenfolge gefüllt. Im folgenden CodeBehind sehen Sie unsere GetFreshDateTime-Methode:

using System;
using System.Data;
using System.Web;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected static string GetFreshDateTime(HttpContext context)
    {
        return DateTime.Now.ToString();
    }
}

Da die GetFreshDateTime-Methode vom Substitution-Steuerelement aufgerufen werden muss, muss sie ein bestimmtes "Format" erfüllen. Sie muss den HttpContext als Parameter verwenden, eine Zeichenfolge zurückgeben und statisch sein. Jetzt können Sie mit HttpContext auf alle Arten von Informationen über die Anforderung usw. zugreifen, um den richtigen Wert zurückzugeben. Im Moment geben wir einfach die aktuelle Datums- und Uhrzeitangabe zurück. Führen Sie das Beispiel aus und sehen Sie, wie der erste Datenstempel zwischengespeichert wird, während der zweite jedes Mal neu geladen wird. So einfach ist das!


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!