Partager via


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

Mise à jour : novembre 2007

La mise en cache d'une page peut fortement augmenter la performance d'une application Web. Toutefois, parfois vous souhaitez que la majeure partie de la page soit mise en cache et que certains fragments de la page soient dynamiques. Par exemple, si vous créez une page de communiqués d'information qui reste statique pour des périodes définies, vous pouvez décider de mettre en cache la page entière. Si vous souhaitiez inclure une bannière publicitaire tournante qui se modifie à chaque demande de page, alors la partie de la page contenant la publicité doit être dynamique.

Pour vous permettre de mettre en cache une page, mais de substituer une partie du contenu dynamiquement, vous pouvez utiliser la substitution post-cache ASP.NET. Avec la substitution post-cache, la page entière est mise en cache de sortie et certaines parties spécifiques sont marquées comme exemptées de mise en cache. Dans l'exemple des bannières publicitaires, le contrôle AdRotator vous permet de tirer parti de substitution post-cache afin que les publicités créées dynamiquement pour chaque utilisateur et pour chaque page soient actualisées.

La substitution post-cache peut être implémentée de trois manières différentes :

  • De manière déclarative, à l'aide du contrôle Substitution.

  • Par programme, à l'aide de l'API de contrôle Substitution.

  • De manière implicite, à l'aide du contrôle AdRotator.

Contrôle de substitution

Le contrôle ASP.NET Substitution spécifie une section d'une page mise en cache qui est créée dynamiquement plutôt que mise en cache. Vous placez un contrôle Substitution sur la page à l'emplacement où vous souhaitez que le contenu dynamique apparaisse.

Au moment de l'exécution, le contrôle Substitution appelle une méthode que vous spécifiez avec la propriété MethodName. La méthode doit retourner une chaîne qui remplace ensuite le contenu du contrôle Substitution. La méthode doit être une méthode statique sur le contrôle conteneur Page ou contrôle UserControl.

À l'aide du contrôle de substitution, la capacité de mise en cache côté client devient une capacité de mise en cache serveur afin que la page ne soit pas mise en cache pour le client. Cela garantit que les futures demandes de page appellent la méthode à nouveau afin de générer le contenu dynamique.

API de substitution

Pour créer du contenu dynamique pour une page mise en cache par programme, vous pouvez appeler la méthode WriteSubstitution dans votre code de page, en lui passant le nom d'une méthode comme un paramètre. La méthode qui gère la création du contenu dynamique prend un seul paramètre HttpContext et retourne une chaîne. La chaîne retournée est le contenu qui sera substitué à l'emplacement donné. Un avantage de l'appel de la méthode WriteSubstitution par rapport à l'utilisation du contrôle Substitution de manière déclarative est que vous pouvez appeler une méthode de tout objet arbitraire au lieu d'appeler une méthode statique de l'objet Page ou UserControl.

L'appel de la méthode WriteSubstitution engendre le passage de la capacité de mise en cache côté client en capacité de mise en cache serveur afin que la page ne soit pas mise en cache pour le client. Cela garantit que les futures demandes de page appellent la méthode à nouveau afin de générer le contenu dynamique.

Contrôle AdRotator

Le contrôle serveur AdRotator implémente la prise en charge en interne de la substitution post-cache. Si vous placez un contrôle AdRotator sur votre page, il restituera des publicités uniques à chaque demande, indépendamment de la mise en cache de la page parente. Par conséquent, une page qui inclut un contrôle AdRotator est mise en cache uniquement du côté serveur.

Voir aussi

Concepts

Vue d'ensemble de la mise en cache ASP.NET

Mise en cache de pages ASP.NET

Mise en cache de plusieurs versions d'une page

Mise en cache de parties d'une page ASP.NET

Mise en cache de données d'application

Mise en cache dans ASP.NET avec la classe SqlCacheDependency