ASP.NET快取技術學習入門---頁面快取(OutPut Caching)
以前寫程式從來都沒用過快取(水平太菜),好在以前做的網站訪問量都非常的小,所以效能問題也不突出,但是如果做一個正規的專案,不論大小,快取技術是必須要使用到的。今天學習了三種常用的快取技術,下面先講第一種,非常的簡單,相信大家一定能看明白。
先說下為什麼要用快取,在正常情況下,當一個使用者要訪問www.abc.com/index.aspx這個頁面時,他的IE會給我們的網站伺服器端發出一個瀏覽請求,我們的伺服器收到請求後就會執行index.aspx檔案相關的代碼,執行完成後生成一個HTML檔案,然後傳送給使用者的IE,如果有1000個人訪問這個頁面的話,哪伺服器就要把index.aspx的程式碼執行1000次再發送1000次,在使用頁面快取技術之後我們把index.aspx頁面快取
頁面快取(OutPut Caching)
頁面快取的使用方法非常的簡單,只需要在aspx頁的頂部加一句宣告
<%@ OutputCache Duration="60" VaryByParam="none" %>
Duration="60" 的意思是指定快取的時間為60秒,可根據情況自已設定
VaryByParam="none" 的意思是設定無引數快取(有引數的快取下面會講到)
這兩個引數是必須的,不能預設。另外還有一個重要的引數
DiskCacheable="true|false" 意思是要不要把快取放到硬碟上,如果設為false則快取資料會放到記憶體中
這裡需要注意一下,如果頁面資料很小的話可以把快取資料放到記憶體中,如果資料較大最好放到硬碟上,否則會佔用大量記憶體影響伺服器執行,如果資料快取到硬碟上的話,記得要把Duration=""的值設的大一些如Duration="3600",如果設的太小,伺服器會過於頻繁的在硬碟上寫資料反而會降低效能,如果在內存中快取資料Duration""則不要設的太長,當然具體時間長短要大家自己多嘗試才知道。
以上就是一個最簡單的頁面快取的實現方法,再來回過頭講一下原理,先看個例子:
新建一個cache1.aspx檔案,在頁面開始處加一句<%@ OutputCache Duration="60" VaryByParam="none"
這裡我們要注意一個問題,如果你的部分資料要求能夠實時顯示的話,那就不能使用整頁快取了,就要使用部分快取,如何部分快取,最簡單的辦法就是自定義一個使用者控制元件,在使用者控制元件裡開頭加<%@ OutputCache Duration="60" VaryByParam="none" %>的宣告,這樣當你在某個頁面裡使用這個控制元件時,頁面裡的其他資料不會被快取,只有這個控制元件的內容會被快取,具體就說了,很簡單,大家自己試一試吧!
注意:DiskCacheable="true|false"的設定在VS2005正式版裡不再正式支援,所以在MSDN裡找不到關於它的說明,我諮詢了微軟的講師,說是把快取放到硬碟上在實際使用中會出現一些問題.現在我們在VS2005正式版裡依然可以使用這個設定,但是會不會產生實際效果我就不清楚了,大家有知道的就說一聲吧!