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

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

Количество секунд, в течение которых 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 последнему извлечению данных.

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

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