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