ASP.NET 頁面緩衝

來源:互聯網
上載者:User
ASP.NET 頁面緩衝 [轉]

在ASP.NET 中有兩種WEB緩衝技術,一種是輸出緩衝,另一種是資料緩衝!
輸出緩衝是指把一次請求所產生的動態輸出儲存於記憶體中。而頁面緩衝就屬於輸出緩衝,就是把整個頁面緩衝起來,如果一個ASP.NET網站存取次數很多的話,而把一些常用到的頁面放入記憶體會帶來效能上的提高,因為只要請求頁面被緩衝起來之後,以後所以對頁面的請求(GET和HEAD請求),就不會建立編譯頁面執行個體,而是直接從記憶體中擷取!
預設情況下,輸出緩衝選項是被開啟的,但不是任意的頁面都講被緩衝,需要顯示的指定哪些頁面需要被緩衝!
緩衝後的頁面,對於GET和HEAD請求將直接從緩衝入口中取出返回給使用者,而對頁面的回傳(POST請求)通常是重新動態產生頁面,即重新載入,和GET.HEAD請求不一樣,這點要注意!!
輸出緩衝有頁面緩衝的到期/有效時間策略,即一個頁面如果被指定60秒的緩衝時間,那在這60秒內,頁面緩衝在記憶體中,如果超過60秒,則該頁面緩衝在記憶體中被清楚,這種方式的到期策略稱之為“強制到期”。
網頁輸出快取設定方式有2種:一種是進階設定,一種是低級設定
進階設定是通過PAGE指令,低層級設定是通過CACHE API 也就是HTTPCachePolicy類來實現,下面我把這兩種方式寫出來:
Page指令:<%@ outputcache duration=秒數%>
頁面中加上這種指令後,在指定的秒數內,對該頁面的請求所返回結果都是一樣的!
這個設定總共有5個可用的特性,事實上,只有Duration和VaryByParam特性是必須的。
1 控制頁面緩衝的位置
Location :指能緩衝資源的3個不同的地方(瀏覽器、Proxy 伺服器和Web伺服器)。在編寫頁面時可以使用這個特性指定允許網頁輸出快取在哪個位置。該特性有5個可能的設定
(1)Any 預設值,即可以緩衝在用戶端瀏覽器,也可以緩衝在Proxy 伺服器裡,或者緩衝在Web伺服器本身
(2)Client 只能緩衝在用戶端(即發出請求的瀏覽器)
(3)Downstream 輸出緩衝能儲存支援HTTP1.1緩衝裝置中(比如Proxy 伺服器)
(4)Server 輸出緩衝將儲存在Web伺服器上
(5)None 禁用輸出緩衝
2 控制緩衝中頁面的生命週期
Duration 指定緩衝存在的周期,單位是秒
3 使用參數啟用頁面的不同版本
VaryByParam 指定可以緩衝同一頁面的不同版本,可以設定一個頁面傳遞參數的變數名,然後頁面緩衝
不同值來進行不同的版本緩衝,也可以設定成“*”,可以快取頁面面的每個可能的版本,但這個是極度耗記憶體的做法,並不是一
個提高效能的好主意!也可以把該參數設定為“none”,意思就是不要根據參數來緩衝同頁面的不同版本。
4 啟用頁面的不同版本的其他方法
VaryByHeader和VaryByCustom特性與VaryByParam的相似之處在與:它們允許指定何時建立頁面新的緩衝版本。
VaryByHeader :允許我們根據由分號分隔的HTTP頭的列表來快取頁面面的不同版本(具體還沒用過,嘿嘿)
VaryByCustom :該特性當設為“browser”,允許我們根據瀏覽器的名稱和主要版本資訊緩衝不同版本,也可以把它設為一個
自訂方法的名稱,從而實現我們自己的邏輯,控制緩衝的版本。
Cache API指令:
//指定網頁輸出快取下一個10秒到期
Response.Cache.SetExpires(DateTime.Now.AddSeconds(10));
//指定所有使用者都有對緩衝的訪問權利
Response.Cache.SetCacheability(HttpCacheability.Public);

轉自:http://www.blogcn.com/user52/it1/blog/29308733.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.