XmlDataSource.CacheDuration Propiedad

Definición

Obtiene o establece el período de tiempo, en segundos, durante el cual el control de origen de datos almacena en memoria caché los datos que ha recuperado.

public:
 virtual property int CacheDuration { int get(); void set(int value); };
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))]
public virtual int CacheDuration { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))>]
member this.CacheDuration : int with get, set
Public Overridable Property CacheDuration As Integer

Valor de propiedad

Número de segundos durante los cuales el control XmlDataSource almacena en memoria caché los resultados de una operación de recuperación de datos. El valor predeterminado es 0.

Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo habilitar el almacenamiento en caché al usar el XmlDataSource control para mostrar los datos contenidos en un archivo XML. El almacenamiento en caché se habilita cuando la EnableCaching propiedad se establece true en y CacheDuration se establece en el número de segundos en los que el control de origen de datos almacena en caché los datos.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

    <form id="form1" runat="server">
      <asp:xmldatasource
        id="XmlDataSource1"
        runat="server"
        datafile="books.xml"
        enablecaching="True"
        cacheduration="60"
        cacheexpirationpolicy="Sliding" />

      <!- TreeView uses hierachical data, so the
          XmlDataSource uses an XmlHierarchicalDataSourceView
          when a TreeView is bound to it. -->

      <asp:treeview
        id="TreeView1"
        runat="server"
        datasourceid="XmlDataSource1">
        <databindings>
          <asp:treenodebinding datamember="book" textfield="title"/>
        </databindings>
      </asp:treeview>

    </form>
  </body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:xmldatasource
        id="XmlDataSource1"
        runat="server"
        datafile="books.xml"
        enablecaching="True"
        cacheduration="60"
        cacheexpirationPolicy="Sliding" />

      <!- TreeView uses hierachical data, so the
          XmlDataSource uses an XmlHierarchicalDataSourceView
          when a TreeView is bound to it. -->

      <asp:treeview
        id="TreeView1"
        runat="server"
        datasourceid="XmlDataSource1">
        <databindings>
          <asp:treenodebinding datamember="book" textfield="title"/>
        </databindings>
      </asp:treeview>

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

El archivo XML del ejemplo de código tiene los datos siguientes:

<books>  
   <computerbooks>  
     <book title="Secrets of Silicon Valley" author="Sheryl Hunter"/>  
     <book title="Straight Talk About Computers" author="Dean Straight"/>  
     <book title="You Can Combat Computer Stress!" author="Marjorie Green"/>  
   </computerbooks>  
   <cookbooks>  
     <book title="Silicon Valley Gastronomic Treats" author="Innes del Castill"/>  
   </cookbooks>  
</books>  

Comentarios

El XmlDataSource control almacena automáticamente los datos en caché cuando se aplica lo siguiente:

  • La propiedad EnableCaching está establecida en true.

  • La CacheDuration propiedad se establece en un valor mayor que 0, que indica el número de segundos que almacena la memoria caché antes de invalidar la memoria caché.

Cualquier cambio en la Data propiedad o en el contenido del archivo que contiene los datos XML hace que se invalide la memoria caché.

De forma predeterminada, la CacheDuration propiedad se establece en 0, que indica una caché indefinida y el origen de datos almacenará en caché los datos hasta que cambie el archivo XML del que depende.

El comportamiento de la memoria caché se rige por una combinación de la duración y la CacheExpirationPolicy configuración. Si CacheExpirationPolicy se establece Absoluteen , el XmlDataSource control almacena los datos en caché en la primera operación de recuperación de datos, lo mantiene en memoria durante el tiempo especificado por CacheDurationy lo invalida después de que haya expirado el tiempo. A continuación, la memoria caché se actualiza en la siguiente operación. Si CacheExpirationPolicy se establece Slidingen , el control de origen de datos almacena en caché los datos en la primera operación de recuperación de datos, pero restablece la ventana de tiempo para la que contiene la memoria caché en cada operación posterior. La memoria caché solo expirará si no hay ninguna actividad durante un tiempo igual a CacheDuration desde la última recuperación de datos.

Se aplica a

Consulte también