XmlDataSource.CacheDuration Свойство

Определение

Возвращает или задает длину промежутка времени (в секундах), в течение которого элемент управления источником данных кэширует извлеченные им данные.

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

Значение свойства

Int32

Количество секунд, на протяжении которых элемент управления XmlDataSource кэширует результат операции извлечения. Значение по умолчанию — 0.

Атрибуты

Примеры

В следующем примере кода показано, как включить кэширование при использовании XmlDataSource элемента управления для отображения данных, содержащихся в XML-файле. Кэширование включено, если EnableCaching свойству true присвоено значение и CacheDuration задано количество секунд, в течение которых данные кэшируются системой управления источниками данных.

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

XML-файл в примере кода содержит следующие данные:

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

Комментарии

Элемент XmlDataSource управления автоматически кэширует данные, если применяется следующее:

  • Свойство EnableCaching имеет значение true.

  • Свойство CacheDuration имеет значение больше 0, которое указывает количество секунд, в течение которых кэш сохраняет данные до того, как кэш будет недействительным.

Любое изменение Data свойства или содержимого файла, содержащего XML-данные, приводит к тому, что кэш будет недействительным.

По умолчанию CacheDuration свойству присвоено значение 0, которое указывает на неопределенный кэш, и источник данных будет кэшировать данные до тех пор, пока XML-файл, от которого он зависит, не будет изменен.

Поведение кэша регулируется сочетанием длительности и CacheExpirationPolicy параметра. Если CacheExpirationPolicy задано значение Absolute, XmlDataSource элемент управления кэширует данные при первой операции извлечения данных, удерживает его в памяти на определенный период времени и делает его недействительным CacheDurationпосле истечения времени. Затем кэш обновляется после следующей операции. Если CacheExpirationPolicy задано значение Sliding, элемент управления источником данных кэширует данные при первой операции извлечения данных, но сбрасывает временное окно, в котором хранится кэш при каждой последующей операции. Срок действия кэша истекает только в том случае, если нет действия в течение определенного времени, равного CacheDuration последнему извлечению данных.

Применяется к

См. также раздел