程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> asp.net 2.0 緩存(理論篇)

asp.net 2.0 緩存(理論篇)

編輯:.NET實例教程
ASP.Net 2.0提供了一些新的用於提升程序性能的技術特性,其中,緩存技術是非常重要的一個特性,它提供了一種非常好的本地數據緩存機制,可以非常容易的定制屬於數據緩從,從而有效的提高數據訪問的性能。
  
    緩存有一個不太容易克服的缺點,那就是數據過期的問題。最典型的情況是,如果將數據庫表中的數據內容緩存到服務器內存中,當數據庫表中的記錄發生更改時,Web應用程序則很可能顯示過期的、不准確的數據。對於某些類型的數據,即使顯示的信息過期,影響也不會很大。然而,對於實時性要求比較嚴格的數據,例如,股票價格、拍賣出價之類信息,顯示的數據稍有過期都是不可接受的。
  
   ASP.Net 2.0支持以下幾種緩存
  頁面輸出緩存
    頁面輸出緩存是最為簡單的緩存機制,該機制將整個ASP.Net頁面內容保存在服務器內存中。當用戶請求該頁面時,系統從內存中輸出相關數據,直到緩存數據過期。在這個過程中,緩存內容直接發送給用戶,而不必再次經過頁面處理生命周期。通常情況下,頁面輸出緩存對於那些包含不需要經常修改內容的,但需要大量處理才能編譯完成的頁面特別有用。需要讀者注意的是,頁面輸出緩存是將頁面全部內容都保存在內存中,並用於完成客戶端請求。
  頁面部分緩存
   頁面部分緩存是指輸出緩存頁面的某些部分,而不是緩存整個頁面內容。實現頁面部分緩存有兩種機制:一種是將頁面中需要緩存的部分置於用戶控件(.ascx文件)中,並且為用戶控件設置緩存功能(包含用戶控件的頁面可設置也可不設置緩存)。這就是通常所說的“控件緩存”。設置控件緩存的實質是對用戶控件進行緩存配置。主要包括以下3種方法:一是使用@ OutputCache指令以聲明方式為用戶控件設置緩存功能,二是在代碼隱藏文件中使用PartialCachingAttribute類設置用戶控件緩存;三是使用ControlCachePolicy類以編程方式指定用戶控件緩存設置。另外,還有一種稱為“緩存後替換”的方法。該方法與控件緩存正好相反,將頁面中的某一部分設置為不緩存,因此,盡管緩存了整個頁面,但是當再次請求該頁時,將重新處理那些沒有設置為緩存的內容。
  應用程序數據緩存
    應用程序數據緩存提供了一種編程方式,可通過鍵/值對將任意數據存儲在內存中。使用應用程序緩存與使用應用程序狀態類似。但是,與應用程序狀態不同的是,應用程序數據緩存中的數據是易失的,即數據並不是在整個應用程序生命周期中都存儲在內存中。應用程序數據緩存的優點是由ASP.Net管理緩存,它會在項過期、無效,或內存不足時移除緩存中的項,還可以配置應用程序緩存,以便在移除項時通知應用程序。
  緩存依賴
   Net 2.0引入的自定義緩存依賴項,特別是基於MS-SQL Server的SqlCacheDependency特性,使得我們可以避免“數據過期”的問題,它能夠根據數據庫中相應數據的變化,通知緩存,並移除那些過期的數據
  
  緩存功能也有其自身的不足。例如,顯示的內容可能不是最新、最准確的,為此,必須設置合適的緩存策略。又如,緩存增加了系統的復雜性並使其難於測試和調試,因此建議在沒有緩存的情況下開發和測試應用程序,然後在性能優化階段啟用緩存選項。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved