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

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

開(kāi)發(fā) 后端
本文介紹ASP.NET頁(yè)面輸出緩存,ASP.NET頁(yè)面輸出緩存與用戶控件緩存在頁(yè)面指令方面差不多,但在api上面有所區(qū)別。

最近因項(xiàng)目要求,需要研究ASP.NET緩存,可是查閱了書本,msdn,網(wǎng)上后有點(diǎn)失望,真是天下文章一大抄啊,大家講來(lái)講去都是那么幾點(diǎn),沒(méi)有條理,沒(méi)有重點(diǎn),也沒(méi)有心得,所以我決定自己來(lái)寫一篇,當(dāng)然,我是沒(méi)有能力來(lái)改變這一現(xiàn)象的,只是寫來(lái)自己備忘罷了。

首先有幾點(diǎn)要說(shuō)明:

1.個(gè)人認(rèn)為緩存只有兩種:ASP.NET頁(yè)面輸出緩存與應(yīng)用程序數(shù)據(jù)緩存。一般大家也是這么認(rèn)為的,但是有另外一部份人卻把這兩個(gè)部份分了又分,搞出三五種出來(lái)。這就讓人感覺(jué)很多余了。

2.所謂控件緩存,其實(shí)是用戶控件緩存??赡苁俏依斫庥袉?wèn)題,我一開(kāi)始還以為那種html控件,web控件也可以進(jìn)行緩存的。所以說(shuō)定義名稱要定義清楚。

3.實(shí)現(xiàn)緩存有兩種方式:在aspx頁(yè)面的頂部寫頁(yè)處理指令或者在cs代碼里寫代碼(又叫緩存API),一種是靜態(tài)設(shè)置,一各是動(dòng)態(tài)設(shè)置。網(wǎng)上總有些人喜歡說(shuō)來(lái)說(shuō)去又不總結(jié)清楚,搞的人很煩。

4.實(shí)際上只要用到了緩存就一定有緩存依賴。只是有些不那么明顯。在我看的文章里一般都把緩存依賴單獨(dú)作為一章講解,這是好事,因?yàn)樵诰彺娴母呒?jí)技術(shù)里緩存依賴是很重要的,但這并不代表有些緩存就沒(méi)有緩存依賴。

好了,下面言歸正傳。我只講常用的東東。

ASP.NET頁(yè)面輸出緩存。其實(shí)用戶控件緩存跟它沒(méi)有大的區(qū)別,只有一個(gè)location不能使用,在這里就一并講了吧。
page指令:

  1. <%@ OutputCache Duration="10" VaryByParam="*" VaryByControl="txtInput" %> 

OutputCache是指令名。Duration是緩存時(shí)長(zhǎng),單位是秒。VaryByParam是跟據(jù)什么進(jìn)行緩存。有兩個(gè)特殊的值:none表示不隨任何參數(shù)的不同而緩存,就是只緩存一個(gè)版本,表示隨任何參數(shù)的不同而緩存,表示只要參數(shù)發(fā)生變化,就緩存一個(gè)新版本。VaryByControl是跟據(jù)控件名進(jìn)行緩存。這里的控件是指一般的服務(wù)器控件,不能是用戶控件,不然會(huì)出現(xiàn)意想不到的結(jié)果。

緩存API:
雖然ASP.NET頁(yè)面輸出緩存與用戶控件緩存在頁(yè)面指令方面差不多,但在api上面有所區(qū)別

頁(yè)面緩存api:
映射的是System.Web.HttpCachePolicy類。
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(3));

***句對(duì)應(yīng)的是Location,是說(shuō)緩存在哪,public是哪里都緩存,nocache是都不緩存,private是客戶端緩存,還有其它幾個(gè)選項(xiàng)。比較關(guān)注的是:客戶端,代理服務(wù)器,服務(wù)器。
第二句對(duì)應(yīng)的是Duration,是說(shuō)緩存時(shí)長(zhǎng),這是個(gè)絕對(duì)時(shí)間,是說(shuō)到了那個(gè)時(shí)就是取消緩存。Response.Cache.VaryByParams["none"] = true;
對(duì)應(yīng)的是VaryByParam用中括號(hào)括起參數(shù),中間可用分號(hào)分隔多個(gè)參數(shù),true表示啟用此參數(shù)。沒(méi)有對(duì)應(yīng)VaryByControl的。

Response.Cache.SetSlidingExpiration(true);
當(dāng)用了這一句的時(shí)候,所有緩存設(shè)置都不啟作用了,原因是這個(gè)屬性是用給代理服務(wù)器之類的處于瀏覽器和Web服務(wù)器之間的緩存使用的,而不是給Web服務(wù)器本身的.是特意設(shè)計(jì)成這樣的.Response.Cache.SetNoServerCaching(),表示取消當(dāng)前所有服務(wù)器緩存。

【編輯推薦】

  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:23:44

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

2009-07-29 15:34:13

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-07-29 10:35:51

ASP.NET緩存

2009-08-04 15:22:33

ASP.NET緩存機(jī)制

2009-08-03 13:38:18

ASP.NET編程模型

2009-07-23 10:52:38

2009-07-27 15:25:40

aspx頁(yè)面ASP.NET

2009-08-05 18:22:55

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-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-08-05 14:19:12

ASP.NET輸出EX
點(diǎn)贊
收藏

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