程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0緩存技術探討

ASP.NET 2.0緩存技術探討

編輯:關於ASP.NET

本文介紹通過緩存來提高網頁的執行效率。

1.ASP.NET Output Caching

當一個網頁頻繁被訪問的時候,我們可以通過把整個網頁緩存來提高執行效率。這樣作的優點是,當用戶再次訪問這個網頁的時候,被格式化好的HTML會被直接送顯。

為什麼會存在這種效果呢?我們通過ASP.NET的基本運行機制來解釋這個問題。ASP.NET是一個動態的服務器,當用戶從客戶端提供一個請求的時候,那麼服務端的IIS接受到請求,然後根據用戶的提示執行相應的代碼。執行代碼之後生成一個結果。這個結果會被緩存成一個HTML放在Server端,然後通過響應用戶的Request將這個HTML傳送到客戶端。在這之中我們發現,很多時候,用戶的請求實際上並沒有多大的變化,可能請求的都是相同的內容。這時候執行一次代碼的成本就會相當的高。既然我們已經生成了一個HTMl ,我們何必要在重新執行一次代碼呢?我們直接把HTML送顯就可以了。

l Output Cache是一項非常有效的增強訪問性能的技術,由於IIS的一些特性,默認情況下Output Cache是打開的,但是要對一些請求進行緩存,還需要開發者進行定制。

l 定制Output Caching

對於Output Caching的定制,我們有兩種方法,一種是基於底層的API技術,一種是基於高層的@Output Caching,一旦Output Caching被定制過,那麼這個網頁就會在第一次被訪問的時候生成cache,直到請求過期為止。

我們著重點是使用高層的@Output Caching標簽來設置,因為API技術的編程難度比較大,和ASP.NET快速編程理念不相符。

l 代碼示例:通過使用Output Cache定義一個緩存頁,顯示當前時間,大家可以看到,當這個頁面被緩存之後,刷新時,當前時間顯示不發生變化。

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        TimeMsg.Text = DateTime.Now.ToString();
    }
   </script>//head以前。
    protected void Page_Load(object sender, EventArgs e)
    {
        TimeMsg.Text = DateTime.Now.ToString();
}
   <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ OutputCache Duration="60" VaryByParam="none" %>

l 示例講解

在這個頁面中<%@ Output Cache Duration = “60” VaryByParam = “none”%>

這段話定義了頁面將要被緩存,並且,其緩存時間為60秒,並在一個頁面被緩存之後,通過定義VaryByParam屬性,它不會因為request接受的參數而改變,只有在60秒之後,頁面自動清除緩存,此時,第一個訪問提供了新的緩存。

l 代碼示例:數據訪問的小示例,相對顯示當前數據示例,這個示例更能顯示緩存頁之後刷新的性能優勢。

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        TimeMsg.Text = DateTime.Now.ToString();
    }
   </script>//head以前。
    protected void Page_Load(object sender, EventArgs e)
    {
        TimeMsg.Text = DateTime.Now.ToString();
}
   <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ OutputCache Duration="60" VaryByParam="none" %>//最上面

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved