【ASP.NET】ASP.NET緩衝技術學習入門—頁面緩衝(OutPut Caching)

來源:互聯網
上載者:User

以前寫程式從來都沒用過緩衝(水平太菜),好在以前做的網站訪問量都非常的小,所以效能問題也不突出,但是如果做一個正規的項目,不論大小,緩衝技術是必須要使用到的。今天學習了三種常用的緩衝技術,下面先講第一種,非常的簡單,相信大家一定能看明白。

  先說下為什麼要用緩衝,在正常情況下,當一個使用者要訪問www.abc.com/index.aspx這個頁面時,他的IE會給我們的網站伺服器端發出一個瀏覽請求,我們的伺服器收到請求後就會執行index.aspx檔案相關的代碼,執行完成後產生一個HTML檔案,然後發送給使用者的IE,如果有1000個人訪問這個頁面的話,哪伺服器就要把index.aspx的代碼執行1000次再發送1000次,在使用頁面緩衝技術之後我們把index.aspx頁面緩衝起來,這樣就有可能做到1000個人訪問,伺服器只執行200次代碼,再發送1000次,與前面相比較伺服器少執行800次代碼,大家想想看這會對伺服器的效率有多麼大的提高啊!如何做到這一點呢?請看“頁面緩衝”

頁面緩衝(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" %>然後在代碼裡寫一句Response.Write(DateTime.Now),運行後顯示出了目前時間,好,我們開始重新整理這個頁面,你會發現頁面顯示的時間停住不變,始終是第一次運行時的時間,現在,我們等待1分鐘後再重新整理頁面,這時頁面顯示的時間變成了目前時間,再反覆重新整理,顯示的時間又不變了,為什麼呢?當第一個使用者請求瀏覽cache1.aspx頁時,伺服器會執行cache1.aspx的代碼產生一個HTML發送給使用者,同時把這個HTML緩衝到記憶體中,當第二次,第三次……發送瀏覽請求時,伺服器不再執行cache1.aspx裡的代碼而是直接把緩衝中的HTML發給使用者端,60秒內都是如此,60秒後緩衝被消除,當下一個請求出現時伺服器會再執行cache1.aspx的代碼,並把產生的HTML緩衝60秒……

  這裡我們要注意一個問題,如果你的部分資料要求能夠即時顯示的話,那就不能使用整頁緩衝了,就要使用部分緩衝,如何部分緩衝,最簡單的辦法就是自訂一個使用者控制項,在使用者控制項裡開頭加<%@ OutputCache Duration="60" VaryByParam="none" %>的聲明,這樣當你在某個頁面裡使用這個控制項時,頁面裡的其他資料不會被緩衝,只有這個控制項的內容會被緩衝,具體就說了,很簡單,大家自己試一試吧! 

注意:DiskCacheable="true|false"的設定在VS2005正式版裡不再正式支援,所以在MSDN裡找不到關於它的說明,我諮詢了微軟的講師,說是把緩衝放到硬碟上在實際使用中會出現一些問題.現在我們在VS2005正式版裡依然可以使用這個設定,但是會不會產生實際效果我就不清楚了,大家有知道的就說一聲吧!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.