¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo

Substitution (Clase)

Para una página Web dinámica cuyo resultado se almacena en caché, especifica una sección de dicha página donde no se aplica el almacenamiento en caché. En esa ubicación, el contenido dinámico se recupera y se sustituye en el control Substitution.

Espacio de nombres: System.Web.UI.WebControls
Ensamblado: System.Web (en system.web.dll)

public class Substitution : Control
public class Substitution extends Control
public class Substitution extends Control
No aplicable.

Utilice el control Substitution para especificar una sección de una página Web dinámica, con almacenamiento en caché, donde se desea sustituir contenido dinámico para el control. El control Substitution ofrece una solución simplificada al almacenamiento parcial en caché para páginas donde la mayoría del contenido se almacena en caché. Puede almacenar en caché la página completa y, a continuación, utilizar controles Substitution para especificar las partes de la página en las que no se aplica el almacenamiento en caché. Las partes almacenadas en caché se ejecutan sólo una vez, y, en lo sucesivo, cada vez que se solicita la página, el resultado se recupera de la caché hasta que la entrada de la caché caduca o se elimina. Las partes dinámicas se ejecutan cada vez que se solicita la página. Este modelo de almacenamiento en caché simplifica el código para páginas principalmente estáticas, ya que no es necesario encapsular las secciones que se van a almacenar en caché en controles de usuario Web. Por ejemplo, este modelo del almacenamiento en caché es útil en un escenario donde existe una página que contiene contenido estático, como artículos de noticias, y un control AdRotator que muestra anuncios. Los artículos de noticias no cambian, lo cual significa que se pueden almacenar en caché. Sin embargo, cada vez que un usuario solicita la página, se desea mostrar un nuevo anuncio. El control AdRotator admite directamente sustituciones posteriores a la recuperación del contenido en caché, y presenta un nuevo anuncio cada vez que la página se devuelve, independientemente de si estaba almacenada en caché.

NotaNota:

Puede colocar un control Substitution en un control de usuario incluido en una página almacenada en caché. Sin embargo, no puede colocar un control Substitution en un control de usuario con almacenamiento de resultado en caché.

Cuando el control Substitution se ejecuta, llama a un método que devuelve una cadena. La cadena devuelta por el método es el contenido que se va a mostrar en la página en la ubicación del control Substitution. Utilice la propiedad MethodName para especificar el nombre del método de devolución de llamada que se debe invocar cuando se ejecuta el control Substitution. El método de devolución de llamada especificado debe ser un método estático en la página o el control de usuario que contiene el control Substitution. La firma del método de devolución de llamada debe coincidir con la firma de un delegado de HttpResponseSubstitutionCallback que toma un parámetro HttpContext y devuelve una cadena.

Para manipular la caché de resultados de una página, puede utilizar la directiva @ OutputCache, la clase HttpCachePolicy o la propiedad Cache. Para obtener más información acerca del almacenamiento de páginas en caché, vea Almacenar en caché páginas ASP.NET y Almacenar en caché partes de una página ASP.NET.

Como alternativa al uso del control Substitution, también puede obtener el comportamiento de sustitución en páginas con almacenamiento en caché mediante un delegado de HttpResponseSubstitutionCallback. Además, también puede obtener el comportamiento de sustitución en páginas con almacenamiento en caché en controles que admiten directamente esa característica, tales como el control AdRotator. Para obtener más información, vea Actualización dinámica de fragmentos de una página almacenada en memoria caché.

El ejemplo de código siguiente muestra cómo agregar, mediante declaración, un control Substitution a una página Web con almacenamiento de resultado en caché. Cuando la página se carga, la fecha y hora actuales se muestran al usuario en una etiqueta. Esta sección de la página se almacena en caché y se actualiza sólo cada 60 segundos. Cuando el control Substitution se ejecuta, éste llama al método GetCurrentDateTime. La cadena devuelta por GetCurrentDateTime se muestra al usuario. Esta sección de la página no se almacena en caché, sino que se actualiza cada vez que se actualiza la página.

<%@ outputcache duration="60" varybyparam="none" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server" language="C#">  
  
  void Page_Load(object sender, System.EventArgs e)
  {
    // Display the current date and time in the label.
    // Output caching applies to this section of the page.
    CachedDateLabel.Text = DateTime.Now.ToString();    
  }
  
  // The Substitution control calls this method to retrieve
  // the current date and time. This section of the page
  // is exempt from output caching. 
  public static string GetCurrentDateTime (HttpContext context)
  {
    return DateTime.Now.ToString ();
  }
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>Substitution Class Example</title>
</head>
<body>
  <form id="form1" runat="server">
  
    <h3>Substitution Class Example</h3>  
    
    <p>This section of the page is not cached:</p>
    
    <asp:substitution id="Substitution1"
      methodname="GetCurrentDateTime"
      runat="Server">
    </asp:substitution>
    
    <br />
    
    <p>This section of the page is cached:</p>
    
    <asp:label id="CachedDateLabel"
      runat="Server">
    </asp:label>
    
    <br /><br />
    
    <asp:button id="RefreshButton"
      text="Refresh Page"
      runat="Server">
    </asp:button>     

  </form>
</body>
</html>

System.Object
   System.Web.UI.Control
    System.Web.UI.WebControls.Substitution

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar:
© 2015 Microsoft