ASP.NET Tutorial/Cache/Expiration

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Expiring the Page Output Cache Programmatically

   <source lang="csharp">

File: Default.aspx <%@ Page Language="C#" %> <%@ OutputCache Duration="3600" VaryByParam="none" %> <!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 id="Head1" runat="server">

   <title>Product List</title>

</head> <body>

   <form id="form1" runat="server">
   <%= DateTime.Now.ToString("T") %>

   <asp:GridView
       id="grdProducts"
       DataSourceID="srcProducts"
       Runat="server" />
   <asp:SqlDataSource
       id="srcProducts"
       ConnectionString="<%$ ConnectionStrings:Products %>"
       SelectCommand="SELECT Title, Director FROM Products"
       Runat="server" />
   

<a href="NextPage.aspx">Add Product</a>
   </form>

</body> </html> File: NextPage.aspx <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">

   protected void dtlProduct_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
   {
       HttpResponse.RemoveOutputCacheItem(Page.ResolveUrl("~/Default.aspx"));
       Response.Redirect("~/Default.aspx");
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>Add Product</title>

</head> <body>

   <form id="form1" runat="server">

Add Product

   <asp:DetailsView
       id="dtlProduct"
       DefaultMode="Insert"
       DataSourceID="srcProducts"
       AutoGenerateRows="false"
       AutoGenerateInsertButton="true"
       Runat="server" OnItemInserted="dtlProduct_ItemInserted">
       <Fields>
       <asp:BoundField
           DataField="Title"
           HeaderText="Title:" />
       <asp:BoundField
           DataField="Director"
           HeaderText="Director:" />
       </Fields>
   </asp:DetailsView>
   <asp:SqlDataSource
       id="srcProducts"
       ConnectionString="<%$ ConnectionStrings:Products %>"
       InsertCommand="INSERT Products (Title, Director)
           VALUES (@Title, @Director)"
       Runat="server" />
   </form>

</body> </html></source>


Using an Absolute Cache Expiration Policy

   <source lang="csharp">

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>DataSource Absolute Cache</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:GridView
       id="grdProducts"
       DataSourceID="srcProducts"
       Runat="server" />
   <asp:SqlDataSource
       id="srcProducts"
       EnableCaching="True"
       CacheDuration="3600"
       SelectCommand="SELECT * FROM Products"
       ConnectionString="<%$ ConnectionStrings:Products %>"
       Runat="server" />
   </form>

</body> </html></source>


Using a Sliding Cache Expiration Policy

   <source lang="csharp">

The cache duration is set to 15 seconds. <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">

   protected void srcProducts_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
   {
       lblMessage.Text = "Selecting data from database";
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>DataSource Sliding Cache</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:Label
       id="lblMessage"
       EnableViewState="false"
       Runat="server" />
   <asp:GridView
       id="grdProducts"
       DataSourceID="srcProducts"
       Runat="server" />
   <asp:SqlDataSource
       id="srcProducts"
       EnableCaching="True"
       CacheExpirationPolicy="Sliding"
       CacheDuration="15"
       SelectCommand="SELECT * FROM Products"
       ConnectionString="<%$ ConnectionStrings:Products %>"
       OnSelecting="srcProducts_Selecting"
       Runat="server" />
   </form>

</body> </html></source>