Compartir a través de


@ OutputCache

Controla de forma declarativa las directivas de almacenamiento en la memoria caché de resultados de una página o un control de usuario de ASP.NET contenido en una página. Para obtener más información sobre la memoria caché de resultados, vea Almacenamiento en caché en 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"  
%>

Atributos

  • Duration
    Tiempo, en segundos, que la página o el control de usuario permanecen en la memoria caché. Al configurar este atributo en una página o en un control de usuario se establece la directiva de expiración para las respuestas HTTP desde el objeto, y los resultados de la página o control de usuario se almacenan automáticamente en caché.

    NotaNota

    Esta información es necesaria.Si no se incluye, se produce un error en el analizador.

  • Location
    Uno de los valores de enumeración OutputCacheLocation. El valor predeterminado es Any.

    NotaNota

    Este atributo no es compatible con las directivas @ OutputCache incluidas en los controles de usuario (archivos .ascx).

  • CacheProfile
    Nombre de la configuración de caché que se asocia a la página. Es un atributo opcional y su valor predeterminado es una cadena vacía ("").

    NotaNota

    Este atributo no es compatible con las directivas @ OutputCache incluidas en los controles de usuario (archivos .ascx).Cuando se especifica en una página, el valor debe coincidir con el nombre de una de las entradas disponibles en el elemento outputCacheProfiles bajo la sección outputCacheSettings.Si el nombre no coincide con una entrada de perfil, se produce una excepción.

  • NoStore
    Valor booleano que determina si se debe evitar el almacenamiento secundario de información confidencial.

    NotaNota

    Este atributo no es compatible con las directivas @ OutputCache incluidas en los controles de usuario (archivos .ascx).Establecer este atributo en true es equivalente a ejecutar el código siguiente durante la solicitud:

                Response.Cache.SetNoStore();
    
  • ProviderName
    Valor de cadena que identifica el proveedor de memoria caché de resultados personalizado que se va a utilizar. Para obtener más información, vea la sección Comentarios de este tema y la entrada Extensible Output Caching with ASP.NET 4 (VS 2010 and .NET 4.0 Series) del blog de Scott Guthrie.

    NotaNota

    Este atributo sólo se admite en los controles de usuario (archivos .ascx).No es compatible con las directivas @ OutputCache incluidas en las páginas ASP.NET (archivos .aspx).

  • Shared
    Valor booleano que determina si se puede o no compartir el resultado del control de usuario con varias páginas. El valor predeterminado es false. Para obtener más información, vea la sección Comentarios.

    NotaNota

    Este atributo no es compatible con las directivas @ OutputCache incluidas en las páginas ASP.NET (archivos .aspx).

  • SqlDependency
    Valor de cadena que identifica un conjunto de pares de nombres de base de datos y tabla de los que depende la memoria caché de resultados de una página o un control. Tenga en cuenta que la clase SqlCacheDependency supervisa la tabla de la base de datos de la que depende la memoria caché de resultados, de manera que, cuando se actualizan los elementos de la tabla, éstos se quitan de la memoria caché al utilizar el sondeo basado en tabla. Cuando se utilizan notificaciones (en Microsoft SQL Server 2005) con el valor CommandNotification, en última instancia se utiliza una clase SqlDependency para registrar las notificaciones de consulta con el servidor de SQL Server 2005.

    NotaNota

    El valor CommandNotification del atributo SqlDependency sólo es válido en páginas Web (.aspx).Los controles de usuario sólo pueden utilizar el sondeo basado en tabla con la directiva @ OutputCache.

  • VaryByCustom
    Texto que representa los requisitos personalizados de almacenamiento en la memoria caché de resultados. Si el valor de este atributo es browser, el almacenamiento en caché varía en función del nombre y número de versión principal del explorador. Si se escribe una cadena personalizada, debe reemplazar el método GetVaryByCustomString en el archivo Global.asax de la aplicación.

  • VaryByHeader
    Lista de encabezados HTTP, separados por punto y coma, que se utilizan para modificar la memoria caché de resultados. Cuando este atributo se establece en varios encabezados, la memoria caché de resultados contiene una versión diferente del documento solicitado para cada combinación de encabezados especificados.

    NotaNota

    Al establecer el atributo VaryByHeader, se habilita el almacenamiento de los elementos en todas las cachés de HTTP 1.1, no sólo la memoria caché de ASP.NET.Este atributo no es compatible con las directivas @ OutputCache en controles de usuario.

  • VaryByParam
    Lista de cadenas, separadas por punto y coma, que se utilizan para modificar el almacenamiento en la memoria caché de resultados. De manera predeterminada, estas cadenas se corresponden con un valor de cadena de consulta enviado con atributos del método GET o con un parámetro enviado mediante el método POST. Cuando este atributo se establece en varios parámetros, la memoria caché de resultados contiene una versión diferente del documento solicitado para cada combinación de parámetros especificados. Los valores posibles incluyen none, un asterisco (* y cualquier cadena de consulta o nombre de parámetro POST válido.

    Nota de precauciónPrecaución

    Cuando se utiliza la directiva @ OutputCache en páginas ASP.NET y controles de usuario, se requiere este atributo o el atributo VaryByControl.Si no se incluye, se producirá un error en el analizador.Si no se desea especificar un parámetro para variar el contenido de la memoria caché, establezca este valor en none.Si desea modificar la memoria caché de resultados en función de los valores de todos los parámetros, establezca el atributo en un asterisco (*).

  • VaryByControl
    Lista de cadenas, separadas por punto y coma, que se utilizan para modificar el almacenamiento en la memoria caché de resultados de un control de usuario. Estas cadenas representan los valores de la propiedad ID de los controles de servidor ASP.NET declarados en el control de usuario. Para obtener más información, vea Almacenar en caché partes de una página ASP.NET.

    NotaNota

    Cuando se utiliza la directiva @ OutputCache en páginas ASP.NET y controles de usuario, se requiere este atributo o el atributo VaryByParam.

  • VaryByContentEncodings
    Lista de cadenas, separadas por punto y coma, que se utilizan para modificar la memoria caché de resultados. El atributo VaryByContentEncodings se utiliza con el encabezado Accept-Encoding para determinar cómo se proporcionan las respuestas almacenadas en caché para las diferentes codificaciones de contenido. Para obtener más información sobre cómo especificar el encabezado Accept-Encoding, consulte la sección 14.3 de la especificación de Hypertext Transfer Protocol -- HTTP/1.1 en el sitio web de W3C

Comentarios

Establecer valores para la memoria caché de resultados de la página es igual que manipular los métodos SetExpires y SetCacheability a través de la propiedad Cache.

Si para ver una página de formularios Web Forms se requiere autorización, la memoria caché de resultados establece el valor del encabezado HTTP Cache-Control en private. Para obtener más información acerca de todos estos temas, vea Almacenar en caché páginas ASP.NET.

Si se establece el atributo Shared en true, varias páginas de formularios Web Forms pueden obtener acceso a los resultados del control de usuario almacenados en caché. Si no se establece en true, el comportamiento predeterminado consiste en almacenar en la memoria caché una versión del resultado del control de usuario para cada página que contenga ese control de usuario. Habilitar el atributo Shared puede ahorrar una gran cantidad de memoria. Para obtener más información, vea Almacenar en caché partes de una página ASP.NET.

Ejemplo

En el siguiente ejemplo de código se muestra cómo establecer el tiempo que permanecen en la memoria caché de resultados una página o un control de usuario.

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

En el siguiente ejemplo de código se muestra cómo indicar a la memoria caché de resultados el almacenamiento de una página o control de usuario en función de la ubicación y de los parámetros numéricos del formulario desde un método POST del formulario o una cadena de consulta. Las solicitudes HTTP que se reciban con una ubicación o un parámetro numérico diferentes (o ambas) permanecen en caché durante diez segundos. Las siguientes solicitudes con iguales parámetros se satisfacen en la memoria caché hasta que la entrada expira.

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

Vea también

Referencia

Sintaxis de directivas de plantilla de texto

Conceptos

Información general sobre el almacenamiento en caché en ASP.NET

Almacenar en caché páginas ASP.NET

Almacenar en caché partes de una página ASP.NET

Información general sobre sintaxis de páginas web ASP.NET