ASP.NET——使用部分頁面緩衝

來源:互聯網
上載者:User

談了如何快取頁面面的全部輸出,在我們只需要快取頁面面的一部分內容時,而另外一部分內容需要動態更新時,這個時候我們可以用部分頁面緩衝技術。
      啟用部分頁面緩衝的方法主要有兩種:
    (1) 緩衝後替換技術(post-cache substitution)    
    (2) 使用使用者控制項來快取頁面面中一個特定地區,而不是整個頁面。

     可以以聲明方式或者編程的方式來使用緩衝後替換技術(這個名字取得不咋樣)。如果希望以聲明方式來使用緩衝後替換,則要使用ASP.NET的Substitution控制項。

 

Code
<%@ Page Language="C#" %>
<%@ OutputCache Duration="15" VaryByParam="none" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    public static string GetTime(HttpContext context)
    {
        return DateTime.Now.ToString("T");  
    } 
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Substitution Control</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    The cached time is: <%= DateTime.Now.ToString("T") %>
    <hr />
    The substitution time is:
    <asp:Substitution
        id="Substitution1"
        MethodName="GetTime"
        Runat="server" />
    
    </div>
    </form>
</body>
</html>

     Substitution控制項有一個重要的屬性:MethodName。MethodName屬性接受頁面上定義的一個方法的名稱,該方法必須是靜態,因為當網頁輸出快取時,頁面執行個體還沒有被建立。

     可以像ASP.NET 頁面一樣在記憶體中緩衝使用者控制項呈現的內容。當給使用者控制項添加%@OutputCache%指令時,使用者控制項的輸出內容就被緩衝了。

 

Code
<%@ Control Language="C#" ClassName="Movies" %>
<%@ OutputCache Duration="600" VaryByParam="none" %>

User Control Time:
<%= DateTime.Now.ToString("T") %>

<asp:GridView
    id="grdMovies"
    DataSourceID="srcMovies"
    Runat="server" />
    
<asp:SqlDataSource
    id="srcMovies"
    ConnectionString="<%$ ConnectionStrings:Movies %>"
    SelectCommand="SELECT Title,Director FROM Movies"
    Runat="server" />    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.