Partager via


Vue d'ensemble du contrôle serveur Web Substitution

Mise à jour : novembre 2007

Le contrôle Substitution permet de créer sur la page des zones qui peuvent être mises à jour de façon dynamique, puis intégrées dans la page mise en cache.

Cette rubrique contient les sections suivantes :

  • Scénarios

  • Contexte

  • Exemples de code

  • Référence de classe

Scénarios

Utilisez le contrôle Substitution pour spécifier une section d'une page Web mise en cache de sortie, dans laquelle le contenu dynamique doit être affiché. Le contrôle Substitution offre une solution simplifiée de mise en cache de page partielle, pour les pages dans lesquelles la majorité du contenu est mise en cache. Vous pouvez mettre en cache de sortie la page entière, puis utiliser des contrôles Substitution pour spécifier les parties de la page qui sont exemptées de mise en cache. Les zones mises en cache ne s'exécutent qu'une seule fois et sont lues à partir du cache, jusqu'à ce que l'entrée du cache expire ou soit purgée. Les zones dynamiques s'exécutent chaque fois que la page est demandée. Ce modèle de mise en cache simplifie le code des pages qui sont essentiellement statiques, parce que vous ne devez pas encapsuler les sections à mettre en cache dans les contrôles utilisateur Web. Par exemple, ce modèle de mise en cache est utile dans un scénario où vous disposez d'une page qui contient du contenu statique, par exemple des articles de presse, et d'un contrôle AdRotator qui affiche des publicités. Les articles de presse ne sont pas modifiés régulièrement, ce qui signifie qu'ils peuvent être mis en cache. Toutefois, chaque fois qu'un utilisateur demande la page, vous souhaitez afficher une nouvelle publicité. Le contrôle AdRotator prend en charge directement la substitution post-cache et restitue une nouvelle publicité chaque fois que la page est publiée, qu'elle soit mise en cache ou non.

Retour au début

Contexte

Lorsqu'une page ASP.NET est mise en cache, la page est entièrement mise en cache par défaut. Lors de la première demande, la page s'exécute et met en cache sa sortie. Lors des demandes suivantes, la demande est exécutée à partir du cache et le code sur la page ne s'exécute pas.

Dans certaines circonstances, il se peut que vous vouliez mettre en cache une page ASP.NET, mais mettre à jour certaines parties de la page à chaque demande. Par exemple, il se peut que vous vouliez mettre en cache la majorité d'une page, tout en ayant la possibilité de mettre à jour de façon dynamique les informations dépendantes de l'heure sur la page.

Vous pouvez utiliser le contrôle Substitution pour insérer du contenu dynamique dans la page mise en cache. Le contrôle Substitution ne rend aucune balise. En revanche, vous liez le contrôle à une méthode dans la page ou dans le contrôle utilisateur parent. Créez une méthode statique qui renvoie toutes les informations que vous souhaitez insérer dans la page. La méthode appelée par le contrôle Substitution doit répondre aux critères suivants :

  • Il doit s'agir d'une méthode statique (partagée dans Visual Basic).

  • Elle doit accepter un paramètre de type HttpContext.

  • Elle doit renvoyer une valeur valide de type String.

Les autres contrôles de la page ne sont pas accessibles au contrôle Substitution. En d'autres termes, vous ne pouvez pas examiner ou modifier la valeur des autres contrôles. Toutefois, le code a accès au contexte de la page active, grâce au paramètre transmis.

Lorsque la page est exécutée, le contrôle Substitution appelle la méthode, puis substitue la valeur de retour de la méthode du contrôle Substitution sur la page.

Retour au début

Exemples de code

L'exemple suivant montre comment utiliser le contrôle Substitution pour créer du contenu mis à jour de façon dynamique sur une page mise en cache. Le code figurant dans l'événement Load de la page met à jour un contrôle Label avec l'heure actuelle. Étant donné que la valeur affectée à la durée de mise en cache de la page est de 60 secondes, le texte du contrôle Label ne change pas même si la page est demandée plusieurs fois pendant la période de 60 secondes. Un contrôle Substitution sur la page appelle la méthode statique GetTime, qui retourne l'heure actuelle sous la forme d'une chaîne. Chaque fois que la page est actualisée, la valeur représentée par le contrôle Substitution est mise à jour.

<%@ Page Language="VB" %>
<%@ OutputCache Duration=60 VaryByParam="None" %>

<script >
    Sub Page_Load()
        Label1.Text = DateTime.Now.ToString()
    End Sub

    Public Shared Function GetTime(ByVal context As HttpContext) _
            As String
        Return DateTime.Now.ToString()
    End Function
</script>

<html>
<head ></head>
<body>
    <form id="form1" >
    <div>
    <p>
    <asp:Label  ID="Label1" />
    </p>
    <p>
    <asp:Substitution  
        ID="Substitution1" 
        MethodName="GetTime" />
    </p>
    <p>
    <asp:Button  ID="Button1" Text="Submit"/>
    </p>
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ OutputCache Duration=60 VaryByParam="None" %>

<script >
    void Page_Load()
    {
        Label1.Text = DateTime.Now.ToString();
    }
    
    public static String GetTime(HttpContext context)
    {
      return DateTime.Now.ToString();
    }
</script>
<html>
<head ></head>
<body>
    <form id="form1" >
    <div>
    <p>
    <asp:Label  ID="Label1" />
    </p>
    <p>
    <asp:Substitution  
        ID="Substitution1" 
        MethodName="GetTime" />
    </p>
    <p>
    <asp:Button  ID="Button1" Text="Submit"/>
    </p>
    </div>
    </form>
</body>
</html>

Retour au début

Référence de classe

Le tableau suivant répertorie les classes relatives au contrôle Substitution.

Membre

Description

Substitution

Classe principale du contrôle.

Retour au début

Voir aussi

Concepts

Mise à jour dynamique de portions d'une page mise en cache