Mise en cache de plusieurs versions d'une page
Il arrive parfois que vous souhaitiez mettre en cache une page dont il existe plusieurs versions variant selon la demande. Par exemple, la page peut avoir une sortie différente selon les valeurs passées dans la chaîne de requête.
ASP.NET permet de mettre en cache plusieurs versions de la même page dans le cache de sortie. Vous pouvez varier le cache de sortie en fonction de plusieurs éléments :
Chaîne de requête dans une demande initiale (HTTP GET).
Valeurs de contrôle passées lors de la publication (valeurs HTTP POST).
En-tête HTTP passés avec une demande.
Numéro de version principale du navigateur à l'origine de la demande.
Chaîne personnalisée dans la page. Dans ce cas, vous créez du code personnalisé dans le fichier Global.asax pour spécifier le comportement de mise en cache de la page.
Vous pouvez mettre en cache plusieurs versions d'une sortie de page de façon déclarative à l'aide des attributs de la directive @ OutputCache et par programme, à l'aide des propriétés et des méthodes de la classe HttpCachePolicy.
La directive @ OutputCache inclut quatre attributs qui vous permettent de mettre en cache plusieurs versions de la sortie d'une page :
L'attribut VaryByParam permet de faire varier la sortie mise en cache selon la chaîne de requête.
L'attribut VaryByControl permet de faire varier la sortie mise en cache selon une valeur de contrôle.
L'attribut VaryByHeader permet de faire varier la sortie mise en cache selon l'en-tête HTTP de la demande.
L'attribut VaryByCustom permet de faire varier la sortie mise en cache en fonction du type du navigateur ou d'une chaîne personnalisée que vous définissez.
Notes
L'attribut VaryByParam ou VaryByControl doit être obligatoirement inclus dans toute directive @ OutputCache. Toutefois, si votre sortie mise en cache ne doit pas varier en fonction d'un contrôle ou de paramètres, vous pouvez affecter à l'attribut VaryByParam la valeur None.
La classe HttpCachePolicy fournit deux propriétés et une méthode qui vous permettent de spécifier par programme la même configuration de cache qu'il est possible de définir de façon déclarative. Les propriétés VaryByParams et VaryByHeaders permettent de spécifier respectivement le paramètre de chaîne de requête et les noms d'en-têtes selon lesquels la stratégie de mise en cache doit varier. La méthode SetVaryByCustom permet de définir des chaînes personnalisées en fonction desquelles faire varier le cache de sortie.
Voir aussi
Tâches
Comment : définir la capacité de mise en cache d'une page ASP.NET de manière déclarative
Comment : définir la capacité de mise en cache d'une page par programme
Comment : mettre en cache des versions d'une page à l'aide du navigateur qui effectue la demande
Comment : mettre en cache des versions d'une page à l'aide de paramètres
Comment : mettre en cache des versions d'une page à l'aide d'en-têtes HTTP
Comment : mettre en cache des versions d'une page à l'aide de chaînes personnalisées
Concepts
Mise en cache de pages ASP.NET
Définition de la capacité d'une page à être mise en cache