@ OutputCache

[Cette documentation constitue un aperçu et pourra faire l'objet de modifications dans les versions ultérieures. Des rubriques vierges sont incluses en tant qu'espaces réservés.]

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 ASP.NET Caching Features.

<%@ 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.

    Notes

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

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

    Notes

    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 ("").

    Notes

    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.

    Notes

    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.

    Notes

    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 Notes.

    Notes

    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.

    Notes

    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 des paramètres personnalisés de mise en cache de sortie. 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.

    Notes

    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 utilisées pour faire varier le cache de sortie, séparées par des points-virgules. 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.

    Avertissement

    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 de chaînes séparées par des points-virgules, utilisées pour faire varier le cache de sortie. 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 Caching Portions of an ASP.NET Page.

    Notes

    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 Caching ASP.NET Pages.

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 Caching Portions of an ASP.NET Page.

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

ASP.NET Caching Overview

Caching ASP.NET Pages

Caching Portions of an ASP.NET Page

ASP.NET Web Page Syntax Overview