@ OutputCache

Contrôle de manière déclarative les politiques de mise en cache de sortie d'une page ou d'un contrôle utilisateur ASP.NET figurant dans une page. Pour plus d'informations sur le cache de sortie, consultez Mise en cache ASP.NET.

<%@ OutputCache Duration="#ofseconds"
   Location="Any | Client | Downstream | Server | None | 
     ServerAndClient "
   Shared="True | False"
   VaryByControl="controlname"
   VaryByCustom="browser | customstring"
   VaryByHeader="headers"
   VaryByParam="parametername" 
   VaryByContentEncoding="encodings"
   CacheProfile="cache profile name | ''"
   NoStore="true | false"
   SqlDependency="database/table name pair | CommandNotification"
   ProviderName="Provider Name"  
%>

Attributs

  • Duration
    Durée, en secondes, de mise en cache de la page ou du contrôle utilisateur. L'affectation de cet attribut à une page ou à un contrôle utilisateur permet d'établir une stratégie d'expiration pour les réponses HTTP à partir de l'objet et mettra automatiquement en cache la sortie de la page ou du contrôle utilisateur.

    RemarqueRemarque

    Cet attribut est obligatoire.Si vous ne l'incluez pas, une erreur d'analyse se produit.

  • Location
    Une des valeurs de l'énumération OutputCacheLocation. La valeur par défaut est Any.

    RemarqueRemarque

    Cet attribut n'est pas pris en charge pour les directives @ OutputCache incluses dans les contrôles utilisateur (fichiers .ascx).

  • CacheProfile
    Nom des paramètres de cache à associer à la page. C'est un attribut facultatif qui représente par défaut une chaîne vide ("").

    RemarqueRemarque

    Cet attribut n'est pas pris en charge pour les directives @ OutputCache incluses dans les contrôles utilisateur (fichiers .ascx).Lorsqu'il est spécifié sur une page, la valeur doit correspondre au nom de l'une des entrées disponibles dans l'élément outputCacheProfiles sous la section outputCacheSettings.Si le nom ne correspond pas à une entrée de profil, une exception est levée.

  • NoStore
    Une valeur booléenne qui détermine s'il faut empêcher le stockage d'informations sensibles dans la mémoire auxiliaire.

    RemarqueRemarque

    Cet attribut n'est pas pris en charge pour les directives @ OutputCache incluses dans les contrôles utilisateur (fichiers .ascx).L'affectation de la valeur true à cet attribut donne le même résultat que l'exécution du code suivant pendant la requête :

                Response.Cache.SetNoStore();
    
  • ProviderName
    Une valeur de chaîne qui identifie le fournisseur de cache de sortie personnalisé à utiliser. Pour plus d'informations, consultez la section Remarques de cette rubrique et l'entrée Mise en cache de sortie extensible avec ASP.NET 4 (VS 2010 et série .NET 4.0) sur le blog de Scott Guthrie.

    RemarqueRemarque

    Cet attribut est pris en charge uniquement dans les contrôles utilisateur (fichiers .ascx).Il n'est pas pris en charge pour les directives @ OutputCache incluses dans les pages ASP.NET (fichiers .aspx).

  • Shared
    Une valeur booléenne qui détermine si la sortie du contrôle utilisateur peut être partagée avec plusieurs pages. La valeur par défaut est false. Pour plus d'informations, consultez la section Remarques.

    RemarqueRemarque

    Cet attribut n'est pas pris en charge pour les directives @ OutputCache incluses dans les pages ASP.NET (fichiers .aspx).

  • SqlDependency
    Valeur de chaîne qui identifie un ensemble de paires de noms de bases de données et de table dont dépend le cache de sortie d'une page ou d'un contrôle. Notez que la classe SqlCacheDependency analyse la table dans une base de données dont dépend le cache de sortie. De cette façon, lorsque les éléments d'une table sont mis à jour, ces éléments sont supprimés du cache lors de l'utilisation de l'interrogation de table. Lorsque vous utilisez des notifications (dans Microsoft SQL Server 2005) avec la valeur CommandNotification, une classe SqlDependency est finalement utilisée pour l'inscription aux notifications de requête avec le serveur SQL Server 2005.

    RemarqueRemarque

    La valeur CommandNotification de l'attribut SqlDependency est uniquement valide sur les pages Web (.aspx).Les contrôles utilisateur ne peuvent utiliser l'interrogation de table qu'avec la directive @ OutputCache.

  • VaryByCustom
    Tout texte qui représente la configuration requise de la mise en cache de sortie personnalisée. Si la valeur browser est affectée à cet attribut, le cache varie en fonction des informations sur le nom du navigateur et la version principale. Si une chaîne personnalisée est entrée, vous devez substituer la méthode GetVaryByCustomString dans le fichier Global.asax de votre application.

  • VaryByHeader
    Liste des en-têtes HTTP avec le point-virgule comme séparateur permettant de varier le cache de sortie. Lorsque cet attribut est défini avec plusieurs en-têtes, le cache de sortie contient une version différente du document demandé pour chaque combinaison d'en-têtes spécifiés.

    RemarqueRemarque

    La définition de l'attribut VaryByHeader permet de mettre en cache des éléments dans tous les caches HTTP version 1.1 et pas uniquement dans le cache ASP.NET.Cet attribut n'est pas pris en charge pour les directives @ OutputCache dans les contrôles utilisateur.

  • VaryByParam
    Liste des chaînes avec le point-virgule comme séparateur permettant de varier le cache de sortie. Par défaut, ces chaînes correspondent à une valeur de chaîne de requête envoyée avec les attributs de la méthode GET ou à un paramètre envoyé avec la méthode POST. Lorsque cet attribut est défini avec plusieurs paramètres, le cache de sortie contient une version différente du document demandé pour chaque combinaison de paramètres spécifiés. Les valeurs possibles sont none, un astérisque * et toute chaîne de requête ou nom de paramètre POST valide.

    Remarque AttentionAttention

    Cet attribut ou l'attribut VaryByControl est requis lorsque vous utilisez la directive @ OutputCache sur les pages ASP.NET et les contrôles utilisateur.Une erreur d'analyse se produit si vous ne l'incluez pas.Si vous ne souhaitez pas spécifier de paramètre pour faire varier le contenu mis en cache, attribuez à l'attribut la valeur none.Si vous souhaitez que le cache de sortie varie en fonction de toutes les valeurs de paramètre, affectez un astérisque (*) à cet attribut.

  • VaryByControl
    Liste des chaînes avec le point-virgule comme séparateur permettant de varier le cache de sortie d'un contrôle utilisateur. Ces chaînes représentent les valeurs de propriété ID des contrôles serveur ASP.NET déclarés dans le contrôle utilisateur. Pour plus d'informations, consultez Mise en cache de parties d'une page ASP.NET.

    RemarqueRemarque

    Cet attribut ou l'attribut VaryByParam est requis lorsque vous utilisez la directive @ OutputCache sur les pages ASP.NET et les contrôles utilisateur.

  • VaryByContentEncodings
    Liste des chaînes, séparées par des points-virgules, utilisées pour faire varier le cache de sortie. L'attribut VaryByContentEncodings est utilisé avec l'en-tête Accept-Encoding pour déterminer comment les réponses mises en cache sont fournies pour différents encodages de contenu. Pour plus d'informations sur la spécification de l'en-tête Accept-Encoding, consultez la section 14.3 de la spécification Hypertext Transfer Protocol -- HTTP/1.1 sur le site Web du W3C.

Notes

L'affectation de valeurs au cache de sortie de page donne un résultat identique à celui qui est obtenu par la manipulation des méthodes SetExpires et SetCacheability via la propriété Cache.

Si une page Web Forms nécessite une autorisation pour pouvoir être affichée par un utilisateur, le cache de sortie affecte private à l'en-tête HTTP Cache-Control. Pour plus d'informations sur le sujet, consultez Mise en cache de pages ASP.NET.

Si vous affectez la valeur true à l'attribut Shared, la sortie du contrôle utilisateur mise en cache est accessible par plusieurs pages Web Forms. Si vous ne lui attribuez pas la valeur true, le comportement par défaut consiste à mettre en cache une version de la sortie du contrôle utilisateur pour chaque page qui contient ce contrôle. Vous pouvez potentiellement économiser une importante quantité de mémoire en activant l'attribut Shared. Pour plus d'informations, consultez Mise en cache de parties d'une page ASP.NET.

Exemple

L'exemple de code suivant montre comment définir la durée de mise en cache d'une page ou d'un contrôle utilisateur.

<%@ OutputCache Duration="100" VaryByParam="none" %>

L'exemple suivant montre comment indiquer au cache de sortie de mettre en cache une page ou un contrôle utilisateur en fonction des paramètres de nombre et d'emplacement des formulaires, à partir d'une méthode POST d'un formulaire ou d'une chaîne de requête. Chaque demande HTTP qui arrive avec un paramètre de nombre ou d'emplacement différent (ou les deux à la fois) est mise en cache pendant dix secondes. Les requêtes suivantes possédant les mêmes valeurs de paramètre restent dans le cache jusqu'à l'expiration de l'entrée.

<%@ OutputCache Duration="10" VaryByParam="location;count" %>

Voir aussi

Référence

Syntaxe des directives de modèles de texte

Concepts

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

Mise en cache de pages ASP.NET

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

Vue d'ensemble de la syntaxe des pages Web ASP.NET