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。

屬性

範例

下列程式碼範例示範如何使用 控制項來顯示 XML 檔案中包含的資料時 XmlDataSource ,啟用快取。 當 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 的值,表示快取在快取失效之前儲存資料的秒數。

對包含 XML 資料之檔案的屬性或內容所做的任何變更 Data ,都會使快取失效。

根據預設, CacheDuration 屬性會設定為 0,這表示無限快取,而且資料來源會快取資料,直到它相依的 XML 檔案變更為止。

快取的行為是由持續時間和 CacheExpirationPolicy 設定的組合所控管。 如果 CacheExpirationPolicy 設定為 Absolute ,則 XmlDataSource 控制項會在第一個資料擷取作業上快取資料、將它保留于記憶體中,以指定的時間量,並在時間 CacheDuration 超過之後失效。 接著會在下一個作業時重新整理快取。 如果 CacheExpirationPolicy 設定為 Sliding ,則資料來源控制項會在第一個資料擷取作業上快取資料,但會在每次後續作業時重設其保留快取的時間範圍。 只有在上次擷取資料以來沒有等於 的活動時 CacheDuration ,快取才會過期。

適用於

另請參閱