緩存技術

整頁緩存:(適用於數據量大,不需頻繁更新的頁面)

在page指令下面添加:

Duration:指緩存的時間,以秒爲單位;

VaryByParam:通過參數緩存;

VaryByControl:通過控件緩存;一般的控件主List控件;

location:保存的位置;

VaryByCustom:通過瀏覽器緩存;

<%@ OutputCache Duration ="20" VaryByParam ="none" VaryByControl ="none" Location ="Any" VaryByCustom ="browser"%>(第三個參數和第四個參數至少有其中一個,前二個參數是必需的)

 

 

利用參數緩存:(可以根據不同的參數緩存不同的頁面)

如果請求的頁面像這樣的(http://localhost:1062/Test/Details.aspx?id=16)帶參的url,那麼可以使用帶參緩存頁面

在page指令下添加緩存指令:

<%@ OutputCache Duration ="20" VaryByParam ="id" %>(多個參數時,用分號隔開,只有當所有參數都匹配時,纔會緩存)

 

使用控件緩存頁面:

當頁面有集合控件可以儲存多個值時,可以使用控件緩存

<%@ OutputCache Duration="120" VaryByParam="none" VaryByControl="ddlStarGender" %>

 

頁面部分緩存(替代緩存)

---緩存頁面一部分:(寫一方法,把不需緩存的地方,用一方法替換掉)

在整頁緩存的基礎上:在頁面添加一控件Substitution(替代頁面中不需要緩存的部分)

<asp:Substitution ID="Substitution1" runat="server" MethodName ="GetDateTime"/>

其中MethodName中調用頁面中不需替換的部分的方法:

在後臺代碼中添加這樣的方法:

例:

    public static string GetDateTime(HttpContext context)
    {
        return DateTime.Now.ToString();
    }

這樣的方法要注意三點:①這個方法必需是靜態的

                                 ②必需是String類型的返回值

                                 ③參數必需是HttpContext類型的

應用程序緩存:

----SQL緩存依賴----

首先需要開通SQL的一個服務:

alter database 數據庫名字 set enable_broker

然後在Page指令下面添加緩存指令:

<%@ OutputCache Duration= "120" SqlDependency="CommandNotification" VaryByParam="none" %>

 

在後臺代碼中添加代碼:

    protected void Page_Load(object sender, EventArgs e)
    {
        // 顯示頁面創建的時間
        lblTime.Text = System.DateTime.Now.ToString();

        string connString = "Data Source=A5FDE8B0B6E1433;Initial Catalog=MyBookShop;User ID=sa;Pwd=780320380";
      
        // 啓動接收依賴項更改通知的監聽器
        SqlDependency.Start(connString);

        SqlConnection connection = new SqlConnection(connString);
        DataSet dataSet = new DataSet();

        string sql = "SELECT title 書名,author 作者,publishdate 出版日期,unitprice 單價,clicks 點擊次數 FROM dbo.books";
        SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
        adapter.Fill(dataSet);

        gvBooksInfo.DataSource = dataSet;
        gvBooksInfo.DataBind(); 
    }

!!!!這樣應用程序會隨時監控數據庫來更新頁面;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章