首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

深入剖析 ASP.NET 2.0 快取機制:SqlDataSource 快取、資料庫相依性與 Substitution 控制項

     編輯:關於ASP.NET

快取功能是開發人員建構 ASP.NET 2.0 Web 應用程式的重要關注點之一。本文嘗試透過三個範例頁面全面剖析 ASP.NET 2.0 提供的新快取機制。

一、簡介

ASP.NET 1.x Cache API 是革命性特性。當 XML 檔案或另一個快取項目內容改變時,Cache API 提供宣告式輸出快取、程式化控制輸出快取及使快取項目失效等能力。雖大幅改進 Web 應用程式效能,但遺憾的是 ASP.NET 1.x 未提供機制在資料庫資料改變時使快取物件資料失效。最終在 ASP.NET 2.0 加入此特性。此外,ASP.NET 2.0 還提供特定功能用於快取 SqlDataSource 控制項輸出——你可充分利用快取優點而不寫一行程式碼。本文討論這些新快取特性及如何應用於自己的 Web 應用程式。

ASP.NET 2.0 快取以多種方式改進。也許最引人矚目的是引入資料庫觸發快取失效機制。ASP.NET 1.x 中,可基於預定義條件(如 XML 檔案改變、另一快取項目改變等)使快取項目失效。借助此特性,當資料或另一快取項目改變時,可刪除或使該項目失效。然而,當 SQL Server 資料庫資料改變時,ASP.NET 1.x Cache API 不允許使快取項目失效,雖大多數應用程式都要求此能力。相比之下,ASP.NET 2.0 則特別重視此點——透過提供資料庫觸發快取失效功能,使你確保快取項目與資料庫改變保持同步更新。

ASP.NET 2.0 另一重要快取特性是能在 SqlDataSource 層級支援快取。SqlDataSource 控制項能操作 SQL Server、OLEDB、ODBC 和 Oracle 等多種資料庫,且支援使用 SQL 命令選取、更新、刪除和插入資料。現在,借助於在 SqlDataSource 控制項層級設定快取屬性的能力,你可更細微控制快取資料。

ASP.NET 2.0 還提供新的 Substitution 控制項,可用於將動態內容注入另一個快取的 Web 頁面中。若你有啟用輸出快取功能的頁面但仍想顯示動態內容(需每次請求頁面時重新生成),可考慮使用 Substitution 控制項。

下列幾節將詳細分析上述特性並提供相關範例。

提示

本文提供三個簡單但完整的 aspx 頁面原始碼,我使用 Visual Studio 2005 在簡單 Web 專案 Caching 中分別試驗,並用瀏覽器預覽這三個頁面。至於如何建立專案與 SQL Server 2005/2000/7.0 範例資料庫 Northwind 連接,此處略過。

二、在 SqlDataSource 控制項中實現基於時間的快取失效

ASP.NET 快取是改進 Web 應用程式效能的重要特性。事實上,改進資料庫驅動 Web 應用程式效能最顯著方法正體現在對快取機制巧妙掌握上。絕大多數情況下,從資料庫檢索資料是你能實現最慢網站操作之一。然而,若能在記憶體中妥善快取資料庫資料並盡可能每次頁面請求時避免存取資料庫,定能顯著改進應用程式效能。

ASP.NET 2.0 提供比 ASP.NET 1.x 更強快取特性。其中一新特性是能將 caching 屬性指定為資料來源控制項宣告一部分。ASP.NET 2.0 新資料來源控制項能「無縫」利用 ASP.NET 2.0 新快取特性,使你能將 caching 屬性設為 SqlDataSource 控制項宣告一部分。

通常可透過設定 SqlDataSource 控制項下列兩屬性支援快取:

  • EnableCaching——將此屬性設為 true,可啟用 SqlDataSource 控制項快取功能。
  • CacheDuration——此屬性允許設定或取得 SqlDataSource 控制項中快取資料持續時間(以秒為單位指定)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved