Cache(快?。┦菍⑤敵龅臄祿嬖趦却嬷?,當要輸出數據時直接由內存取得數據做輸出;由于是從內存中抓取數據,所以效率也就提升了。ASP.NET 的快取方式有兩種,分別是Output Cache以及Data Cache。
Output Cache(輸出快?。?br> 我們在第一章中提到當我們第一次執行aspx 網頁時,整個程序會先被編譯為IL 格式后再執行;其實在執行IL 和最后輸出網頁之間還可以開啟Cache 的功能。當aspx 網頁第一次被執行時,會先被編譯成IL 格式后再執行,然后將執行的結果儲存在Output Cache 中再下載至客戶端的瀏覽器。
等到以后網頁要輸出時,只要原網頁內容沒有被修改及快取中有數據,就可以直接從Cache 中直接將網頁的內容下載給使用者;當然就會提升執行的效率。輸出快取對象Cache 是屬于Response 對象的成員。Cache 對象正確的對象類別名稱為HttpCachePolicy,其常用的屬性及方法如下表所示:
要啟動輸出快取只要在網頁的開頭加入下列宣告:
<%@ OutputCache Duration="秒數"%>
其中Duration 代表這個快取會在內存中存在的時間,在這段時間之內一律使用快取內的網頁數據,直到超過所設定的時間才會執行更新的動作。Output Cache 也可以利用程序來控制。因為Cache 對象屬于Response 對象,所以要使用Cache 只要以「Response.Cache.屬性或方法」的語法即可使用Output Cache。所以如果我們要設定輸出快取的有效時間,其使用語法如下所示:
Response.Cache.SetExpires(時間)
另外SetCacheability 可以設定Cache 的有效范圍,其使用語法如下所示:
Response.Cache. SetCacheability (HttpCacheability.Public |
HttpCacheability.Private)
倘若傳入的參數如為HttpCacheability.Public,表示所有的Client 端都可以使用這個Cache;HttpCacheability.Private 則只有這個聯機可以使用。下列范例我們設定Cache 有效時間為三秒,也就是說在這三秒內按下重新整理后,其輸出的時間是一樣的:
<Html>
<Form Runat="Server">
目前時間:<ASP:Label Id="lblTime" Runat="Server" />
</Form>
<Script Language="VB" Runat="Server">
Sub Page_Load(Sender As Object,e As EventArgs)
Response.Cache.SetExpires(DateTime.Now.AddSeconds(3))
Response.Cache.SetCacheability(HttpCacheability.Public)
lblTime.Text=Format(Now(), "hh:mm:ss")
End Sub
</Script>
</Html>