XmlDataSource.CacheDuration Właściwość

Definicja

Pobiera lub ustawia czas w sekundach, przez który kontrola źródła danych buforuje pobrane dane.

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

Wartość właściwości

Liczba sekund XmlDataSource buforowanych przez kontrolkę wyników operacji pobierania danych. Wartość domyślna to 0.

Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak włączyć buforowanie podczas używania kontrolki XmlDataSource do wyświetlania danych zawartych w pliku XML. Buforowanie jest włączone, gdy EnableCaching właściwość jest ustawiona true na i CacheDuration jest ustawiona na liczbę sekund buforowanych przez kontrolę źródła danych.

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

Plik XML w przykładzie kodu zawiera następujące dane:

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

Uwagi

Kontrolka XmlDataSource automatycznie buforuje dane w przypadku zastosowania następujących elementów:

  • Właściwość EnableCaching ma ustawioną wartość true.

  • Właściwość CacheDuration jest ustawiona na wartość większą niż 0, co wskazuje liczbę sekund, w których pamięć podręczna przechowuje dane przed unieważnieniem pamięci podręcznej.

Każda zmiana Data właściwości lub zawartości pliku zawierającego dane XML powoduje unieważnienie pamięci podręcznej.

Domyślnie CacheDuration właściwość jest ustawiona na 0, co wskazuje na nieskończoną pamięć podręczną, a źródło danych będzie buforować dane do momentu zmiany pliku XML, od którego zależy.

Zachowanie pamięci podręcznej podlega kombinacji czasu trwania i CacheExpirationPolicy ustawienia. Jeśli CacheExpirationPolicy jest ustawiona wartość Absolute, kontrolka XmlDataSource buforuje dane na pierwszej operacji pobierania danych, przechowuje je w pamięci przez czas określony przez CacheDuration, i unieważnia je po upływie czasu. Pamięć podręczna jest następnie odświeżona po następnej operacji. Jeśli CacheExpirationPolicy jest ustawiona Slidingwartość , kontrolka źródła danych buforuje dane w pierwszej operacji pobierania danych, ale resetuje przedział czasu, dla którego przechowuje pamięć podręczną dla każdej kolejnej operacji. Pamięć podręczna wygaśnie tylko wtedy, gdy nie ma żadnych działań równych czasowi CacheDuration od ostatniego pobierania danych.

Dotyczy

Zobacz też