Condividi tramite


XmlDataSource.CacheDuration Proprietà

Definizione

Ottiene o imposta il numero di secondi durante i quali il controllo origine dati memorizza nella cache i dati che ha recuperato.

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

Valore della proprietà

Numero di secondi durante i quali il controllo XmlDataSource memorizza nella cache i risultati di un'operazione di recupero dei dati. Il valore predefinito è 0.

Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come abilitare la memorizzazione nella cache quando si usa il XmlDataSource controllo per visualizzare i dati contenuti in un file XML. La memorizzazione nella cache è abilitata quando la EnableCaching proprietà è impostata su e viene CacheDuration impostato true sul numero di secondi in cui i dati vengono memorizzati nella cache dal controllo origine dati.

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

Il file XML nell'esempio di codice contiene i dati seguenti:

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

Commenti

Il XmlDataSource controllo memorizza automaticamente nella cache i dati quando si applica quanto segue:

  • La proprietà EnableCaching è impostata su true.

  • La CacheDuration proprietà è impostata su un valore maggiore di 0, che indica il numero di secondi in cui la cache archivia i dati prima che la cache venga invalidata.

Qualsiasi modifica apportata Data alla proprietà o al contenuto del file che contiene i dati XML causa l'invalidazione della cache.

Per impostazione predefinita, la CacheDuration proprietà è impostata su 0, che indica una cache indefinita e l'origine dati memorizza nella cache i dati fino a quando non viene modificato il file XML da cui dipende.

Il comportamento della cache è regolato da una combinazione della durata e dell'impostazione CacheExpirationPolicy . Se CacheExpirationPolicy è impostato su Absolute, il XmlDataSource controllo memorizza nella cache i dati nella prima operazione di recupero dei dati, lo contiene in memoria per la quantità di tempo specificata da CacheDuratione la invalida dopo la scadenza del tempo. La cache viene quindi aggiornata al termine dell'operazione successiva. Se CacheExpirationPolicy è impostato su Sliding, il controllo origine dati memorizza nella cache i dati nella prima operazione di recupero dati, ma reimposta l'intervallo di tempo per il quale contiene la cache al momento di ogni operazione successiva. La cache scadrà solo se non è presente alcuna attività per un periodo di tempo uguale a CacheDuration dopo l'ultimo recupero dei dati.

Si applica a

Vedi anche