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 |
---|---|
Classe principale du contrôle. |
Retour au début