自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET緩存頁(yè)面

開(kāi)發(fā) 后端
本文介紹ASP.NET緩存頁(yè)面,包括緩存頁(yè)面片段惟一合法的地方是web服務(wù)器。這是因?yàn)槠尉彺嬖贏SP.NET中是新的功能,所以瀏覽器和代理服務(wù)器不支持。

很早就想寫(xiě)多點(diǎn)關(guān)于ASP.NET緩存頁(yè)面的東西,一來(lái)是為了自己可以更方面的查詢,二來(lái)當(dāng)然了更方面大家拉。哈,閑話少說(shuō),今天剛好有空就拼湊點(diǎn)出來(lái)

緩存頁(yè)面

使用OutputCache指令

  1. <%@OutputCacheDuration="3600" 
  2. Location="Any" 
  3. VaryByCustom="browser" 
  4. VaryByParam="RequestID"%> 

其中Duration和VaryByParam特性是必須的。

VaryByParam允許我們緩存頁(yè)面的不同版本。在上面的例子中,VaryByParam設(shè)為了RequestID,所以ASP.NET使用RequestID參數(shù)的不同值,這些值或者是在HTTP GET的查詢字符串中傳入,或者是在HTTP POST的參數(shù)中傳入??梢酝ㄟ^(guò)檢查RequestID參數(shù)的值讓?xiě)?yīng)用程序區(qū)分不同的用戶;通過(guò)在頁(yè)面的OutputCache指令中放置VaryByParam="RequestID",可以讓ASP.NET為每個(gè)用戶緩存頁(yè)面的不同版本。
如果不想根據(jù)參數(shù)的值緩存頁(yè)面的不問(wèn)版本,那么只要把VaryByParam設(shè)為none。
也可以要求ASP.NET為每個(gè)可能的參數(shù)組合緩存頁(yè)面的一個(gè)版本。為此,可把VaryByParam設(shè)為*。

VaryByHeader和VaryByCustom特性與VaryByParam的相似之處在于,它們?cè)试S指定何時(shí)應(yīng)創(chuàng)建頁(yè)面新的緩存版本。
VaryByHeader允許我們根據(jù)由分號(hào)分隔的HTTP頭的列表末緩存頁(yè)面的不向版本。
VaryByCustom當(dāng)設(shè)為browser時(shí),允許我們根據(jù)瀏覽器的名稱和主版本信息緩存不同版本。也可以把它設(shè)為一個(gè)自定義方法的名稱,從而實(shí)現(xiàn)我們自己的邏輯,控制緩存的版本。

片斷緩存

可以利用用戶控件將頁(yè)面分段,在ascx文件中寫(xiě)入緩存的語(yǔ)句,而不在aspx文件中寫(xiě)緩存語(yǔ)句,這樣ASP.NET就可以只緩存ascx片斷的輸出了。一般像頁(yè)眉或頁(yè)腳基本上都是一樣的,就不需要重新加載。但是如果其中有動(dòng)態(tài)變化的數(shù)據(jù)就不能對(duì)其進(jìn)行緩存,因?yàn)橐坏┍痪彺婧蟪绦蚓筒粫?huì)再創(chuàng)建它的實(shí)例來(lái)更新數(shù)據(jù)顯示,只有等到生存期過(guò)期才行,所以對(duì)于這種情況就不適于用頁(yè)面片斷緩存。
注意:
一、注意片段緩存不支持Location特性;緩存頁(yè)面片段惟一合法的地方是web服務(wù)器。這是因?yàn)槠尉彺嬖贏SP.NET中是新的功能,所以瀏覽器和代理服務(wù)器不支持。
二、片段緩存有另外一個(gè)在頁(yè)面緩存中沒(méi)有的特性——VaryByControl。VaryByControl特性允許指定一個(gè)由分號(hào)分隔的字符串列表,代表用戶控件內(nèi)使用的控件的名稱;ASP.NET將針對(duì)值的每個(gè)不同的組合生成用戶構(gòu)件的一個(gè)緩存版本。

數(shù)據(jù)緩存

低級(jí)API是Cache類,它位于ASP.NET中的System.web.Caching命名空間,可以用它緩存生成很耗費(fèi)資源的數(shù)據(jù)。Cache類的使用和Session與Application對(duì)象一樣簡(jiǎn)單。每個(gè)應(yīng)用程序只有一個(gè)Cache對(duì)象——這意味著使用Cache對(duì)象存儲(chǔ)在緩存中的數(shù)據(jù)是應(yīng)用程序級(jí)別的數(shù)據(jù)。使事情更為簡(jiǎn)單的是,Page類的Cache屬性使應(yīng)用程序的Cache對(duì)象實(shí)例能在代碼中使用。
通過(guò)Cache對(duì)象緩存的數(shù)據(jù)存儲(chǔ)在應(yīng)用程序的內(nèi)存中。這意味著該數(shù)據(jù)的生存期不會(huì)超過(guò)應(yīng)用程序的重啟(事實(shí)上,這和存儲(chǔ)在Application與Session對(duì)象中的數(shù)據(jù)一樣,除非使用StateService或SQL State會(huì)話模式存儲(chǔ)Session數(shù)據(jù))。
具體的使用和語(yǔ)法與Session和Application一樣。轉(zhuǎn)換回來(lái)的時(shí)候需要注意對(duì)其進(jìn)行相應(yīng)類型的強(qiáng)制類型轉(zhuǎn)換。

這不是在ASP.NET緩存中添加緩存項(xiàng)的惟一方式。Cache對(duì)象有兩個(gè)方法Insert()方法和Add()方法,它們靈活性更高。它們的用法近似,但稍有不同:
Insert()方法用于覆蓋ASP.NET緩存中現(xiàn)有的緩存項(xiàng)。
Add()方法只用于在ASP.NET緩存中添加新的緩存項(xiàng)(如果用它覆蓋現(xiàn)有的緩存項(xiàng),則會(huì)失敗)。
每個(gè)方法都有7個(gè)參數(shù),而且兩個(gè)方法的參數(shù)相同。
在緩存某一項(xiàng)時(shí),可以指定它的相關(guān)性,告訴ASP.NET緩存頁(yè)面在緩存中一直保留到某個(gè)事件發(fā)生時(shí)為止。

【編輯推薦】

  1. 簡(jiǎn)單介紹ASP應(yīng)用程序
  2. ASP.NET的IScriptControl
  3. 詳解ASP.NET身份驗(yàn)證服務(wù)
  4. 概述ASP.NET安全
  5. ASP.NET ISAPI
責(zé)任編輯:佚名 來(lái)源: 網(wǎng)易科技
相關(guān)推薦

2009-07-29 14:35:34

頁(yè)面輸出緩存ASP.NET

2009-07-31 10:33:54

ASP.NET頁(yè)面輸出

2009-10-10 10:44:15

ASP.NET頁(yè)面緩存

2009-07-29 17:26:39

ASP.NET頁(yè)面

2009-07-23 14:17:41

2009-08-04 15:22:33

ASP.NET緩存機(jī)制

2009-08-03 13:38:18

ASP.NET編程模型

2009-07-29 10:35:51

ASP.NET緩存

2009-07-21 15:40:59

Asp.Net動(dòng)態(tài)頁(yè)面

2009-07-23 14:21:55

ASP.NET頁(yè)面

2009-07-28 16:40:11

ASP.NET異步頁(yè)面

2009-07-23 10:52:38

2009-07-27 15:25:40

aspx頁(yè)面ASP.NET

2009-08-05 18:22:55

2009-07-29 15:34:13

2009-05-11 13:48:00

ASP.NET 2.0緩存效率

2009-08-17 16:59:36

ASP.NET緩存機(jī)制

2009-08-03 18:35:51

ASP.NET數(shù)據(jù)緩存

2009-08-03 18:47:12

ASP.NET數(shù)據(jù)緩存

2009-07-23 14:08:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)