概述
緩存學術一些的解釋是”將常用數據放入易於讀取的地方以提高性能”。而對於Asp.net來說,需要被 緩存的對象多種多樣,包括從數據庫中提取出來的數據,以及aspx頁面生成的靜態頁,甚至是編譯好的程 序集。合理利用緩存能讓Asp.net的性能大幅提升,下面將對Asp.net中的緩存機制進行簡單概述。
緩存的分類
在Asp.net中,大部分緩存機制是保存在cache對象中,也就是服務器內存的一部分。當用戶請求數據 時,如果數據已經被緩存,則用戶所提取的數據直接從服務端返回,而不是從數據庫等底層數據庫提取。 這對性能的提升不得不說很有幫助。下面來看asp.net中幾種緩存機制。
程序集緩存
簡單的說,這種緩存是asp.net自帶的,無需開發人員進行參與的緩存方式。即當第一次請求服務器時 ,Page類以及相關程序集被編譯,當下次請求時,訪問緩存後的編譯而不是重新編譯。CLR會自動檢測代 碼的改變,如果代碼改變後,當下次訪問時,相關代碼會被重新編譯。
數據源緩存
數據源緩存,顧名思義,也就是利用數據源控件對獲取的數據進行緩存的方式。這些控件包括 SqlDataSource,ObjectDataSource等:
作為抽象類的DataSourceControl暴漏了如下屬性用於緩存:
名稱 說明 CacheDuration 獲取或設置以秒為單位的一段時間,數據源控件就在這段時間內緩存 SelectMethod 屬性檢索 到的數據。 CacheExpirationPolicy 獲取或設置緩存的到期行為,該行為與持續時間組合在一起可以描述數據源控件所用緩存的行 為。 CacheKeyDependency 獲取或設置一個用戶定義的鍵依賴項,該鍵依賴項鏈接到數據源控件創建的所有數據緩存對象 。 EnableCaching 獲取或設置一個值,該值指示 ObjectDataSource 控件是否啟用數據緩存。