Asp.net 緩存技術(shù)
發(fā)布時間:2008/8/26 0:00:00 訪問次數(shù):502
用了緩存,其實就是由原來的:響應(yīng)->執(zhí)行->送顯,變成: 響應(yīng)->送顯。中間的“執(zhí)行”就省掉了,提高了效率。一般有四種類型的緩存技術(shù)。
一.output caching
由于iis的一些特性,默認情況下output cache是打開的,但是要對某些請求進行緩存,還需要開發(fā)者進行定制,而且默認情況下,output cache 會被緩存到硬盤上,我們可以通過修改diskcacheable的屬性來設(shè)置其是否緩存,還可以通過web config里配置緩存文件的大小。
<%@ outputcache duration="3600" varybyparam="state" diskcacheable="true" %>
一般用硬盤緩存是考慮到頁面送顯的數(shù)據(jù)比較大,相對內(nèi)存緩存來說,它的容量大,但是訪問速度慢點,如果把周期設(shè)太短,使用硬盤緩存的效率就不大好。對于output cache的定制,有兩種方法,一種是基于底層的api技術(shù),一種是基于高層的@outputcaching:
1.基于高層的@outputcaching
a.由參數(shù)改變緩存內(nèi)容:有些時候我們需要根據(jù)用戶的請求來生成頁面,但是用戶的請求只有有限的幾種組合,這個時候就可以根據(jù)用戶請求來生成幾種緩存頁面,來進行緩存。
<%@ outputcache duration = "60" varybyparam = "state" %>
<asp:sqldatasource id="sqldatasource1" runat="server">
<selectparameters>
<asp:querystringparameter name="state" querystringfield="state" defaultvalue="ca" />
</selectparameters>
</asp:sqldatasource>
b.回調(diào)緩存:可以針對每個請求在頁面中插入動態(tài)的部分,以彌補單獨使用靜態(tài)緩存的不足:
動態(tài)的部分用substitution控件,substitution控件是一個容器
<asp:substitution id="substitution1" runat="server" methodname ="" />
methodname 里面放入要調(diào)用的方法內(nèi)容。
2. 使用api定制緩存:
通過設(shè)置system.web.httpcachepolicy屬性來進行配置
<%@ outputcache duration="60" varybyparam="none" %>
就可以寫成
response.cache.setexpires(datetime.now.addseconds(60));
response.cache.setcacheability(httpcacheability.public);
二.fragment caching
作為output的緩存的附加功能,還提供一種緩存技術(shù),專門用于緩存用戶控件。在用戶控件中設(shè)置:
<%@ outputcache duration="60" varybyparam="none" %>
但在引用用戶控件的頁面不設(shè)置緩存。這樣的話,頁面中除了用戶控件是靜態(tài)的,其他都是動態(tài)的。
緩存用戶空間同樣還可以使用控件作為參數(shù)來源。通過指定控件作為緩存控件的數(shù)據(jù)來源,可以達到緩存控件數(shù)據(jù)的目的,和上面一樣。
三.data caching
asp.net提供了一種非?旖莸姆椒ㄟM行數(shù)據(jù)庫緩存,用戶可以非常簡單方便的對頁面變量進行緩存。并以此提高程序效率。一個頁面變量的緩存生命周期與應(yīng)用程序的緩存生命周期相同
實現(xiàn)是把數(shù)據(jù)放在cache中,如:
source = new dataview(ds);
cache("mycache") = source;
mycache這個變量其實就是一個xml文件。
四.sql caching
通過配置數(shù)據(jù)庫連接池,只有當數(shù)據(jù)庫數(shù)據(jù)被改變的時候,緩存才會改變。
開個dos窗口:
c:\>dir aspnet_regsql.exe/s ——這個文件是專門注冊sql連接池的,它對sql sever 7.0以上都有專門的支持,我們通過寫 一些專門的語句來配置這個注冊連接池,可以把連接池和本地的應(yīng)用程序(asp.net服務(wù)器,即iis)做一個連接。連接池只能監(jiān)視有限的幾個庫,不然連接池的負載太大。使用sql caching:
先注冊,如: aspnet_regsql.exe-s".\sqlexpress"-e-d"pubs"-ed
aspnet_regsql.exe-s".\sqlexpress"-e-d"pubs"-et-t"authors"
其中:- s".\sqlexpress" 表示要使用的sql server實例為".\sqlexpress"。-e 表示使用當前windows憑證進行身份驗證。-d"pubs" 表示用于應(yīng)用程序服務(wù)的數(shù)據(jù)庫名稱叫"pubs"。-ed表示為sql 緩存依賴項啟用數(shù)據(jù)庫。-et 表示為sql 緩存依賴項啟用表。-t"authors"表的名稱為"authors"。
然后頁面上:
<%@ outputcache duration="99999999" varybyparam="none" sqldependency="pubs.authors" %>就ok了。
歡迎轉(zhuǎn)載,信息來自維庫電子市場網(wǎng)(www.dzsc.com)
用了緩存,其實就是由原來的:響應(yīng)->執(zhí)行->送顯,變成: 響應(yīng)->送顯。中間的“執(zhí)行”就省掉了,提高了效率。一般有四種類型的緩存技術(shù)。
一.output caching
由于iis的一些特性,默認情況下output cache是打開的,但是要對某些請求進行緩存,還需要開發(fā)者進行定制,而且默認情況下,output cache 會被緩存到硬盤上,我們可以通過修改diskcacheable的屬性來設(shè)置其是否緩存,還可以通過web config里配置緩存文件的大小。
<%@ outputcache duration="3600" varybyparam="state" diskcacheable="true" %>
一般用硬盤緩存是考慮到頁面送顯的數(shù)據(jù)比較大,相對內(nèi)存緩存來說,它的容量大,但是訪問速度慢點,如果把周期設(shè)太短,使用硬盤緩存的效率就不大好。對于output cache的定制,有兩種方法,一種是基于底層的api技術(shù),一種是基于高層的@outputcaching:
1.基于高層的@outputcaching
a.由參數(shù)改變緩存內(nèi)容:有些時候我們需要根據(jù)用戶的請求來生成頁面,但是用戶的請求只有有限的幾種組合,這個時候就可以根據(jù)用戶請求來生成幾種緩存頁面,來進行緩存。
<%@ outputcache duration = "60" varybyparam = "state" %>
<asp:sqldatasource id="sqldatasource1" runat="server">
<selectparameters>
<asp:querystringparameter name="state" querystringfield="state" defaultvalue="ca" />
</selectparameters>
</asp:sqldatasource>
b.回調(diào)緩存:可以針對每個請求在頁面中插入動態(tài)的部分,以彌補單獨使用靜態(tài)緩存的不足:
動態(tài)的部分用substitution控件,substitution控件是一個容器
<asp:substitution id="substitution1" runat="server" methodname ="" />
methodname 里面放入要調(diào)用的方法內(nèi)容。
2. 使用api定制緩存:
通過設(shè)置system.web.httpcachepolicy屬性來進行配置
<%@ outputcache duration="60" varybyparam="none" %>
就可以寫成
response.cache.setexpires(datetime.now.addseconds(60));
response.cache.setcacheability(httpcacheability.public);
二.fragment caching
作為output的緩存的附加功能,還提供一種緩存技術(shù),專門用于緩存用戶控件。在用戶控件中設(shè)置:
<%@ outputcache duration="60" varybyparam="none" %>
但在引用用戶控件的頁面不設(shè)置緩存。這樣的話,頁面中除了用戶控件是靜態(tài)的,其他都是動態(tài)的。
緩存用戶空間同樣還可以使用控件作為參數(shù)來源。通過指定控件作為緩存控件的數(shù)據(jù)來源,可以達到緩存控件數(shù)據(jù)的目的,和上面一樣。
三.data caching
asp.net提供了一種非常快捷的方法進行數(shù)據(jù)庫緩存,用戶可以非常簡單方便的對頁面變量進行緩存。并以此提高程序效率。一個頁面變量的緩存生命周期與應(yīng)用程序的緩存生命周期相同
實現(xiàn)是把數(shù)據(jù)放在cache中,如:
source = new dataview(ds);
cache("mycache") = source;
mycache這個變量其實就是一個xml文件。
四.sql caching
通過配置數(shù)據(jù)庫連接池,只有當數(shù)據(jù)庫數(shù)據(jù)被改變的時候,緩存才會改變。
開個dos窗口:
c:\>dir aspnet_regsql.exe/s ——這個文件是專門注冊sql連接池的,它對sql sever 7.0以上都有專門的支持,我們通過寫 一些專門的語句來配置這個注冊連接池,可以把連接池和本地的應(yīng)用程序(asp.net服務(wù)器,即iis)做一個連接。連接池只能監(jiān)視有限的幾個庫,不然連接池的負載太大。使用sql caching:
先注冊,如: aspnet_regsql.exe-s".\sqlexpress"-e-d"pubs"-ed
aspnet_regsql.exe-s".\sqlexpress"-e-d"pubs"-et-t"authors"
其中:- s".\sqlexpress" 表示要使用的sql server實例為".\sqlexpress"。-e 表示使用當前windows憑證進行身份驗證。-d"pubs" 表示用于應(yīng)用程序服務(wù)的數(shù)據(jù)庫名稱叫"pubs"。-ed表示為sql 緩存依賴項啟用數(shù)據(jù)庫。-et 表示為sql 緩存依賴項啟用表。-t"authors"表的名稱為"authors"。
然后頁面上:
<%@ outputcache duration="99999999" varybyparam="none" sqldependency="pubs.authors" %>就ok了。
歡迎轉(zhuǎn)載,信息來自維庫電子市場網(wǎng)(www.dzsc.com)
上一篇:EDA技術(shù)及軟件
上一篇:ASP緩存技術(shù)
熱門點擊
- 什么是PS/2接口 USB(Universa
- 揭密DRAM陣列架構(gòu) — 8F2 vs. 6
- 內(nèi)核棧的使用
- S3C2440 Windows CE的RTC
- 通用串行總線USB及其應(yīng)用
- 基于VC的USB接口通信程序設(shè)計
- USB接口研究與硬件電路設(shè)計
- Linux下I2C設(shè)備驅(qū)動開發(fā)和實現(xiàn)
- S3C44B0X鍵盤的uClinux驅(qū)動程序
- 什么是RS232接口
推薦技術(shù)資料
- 電源管理 IC (PMIC)&
- I2C 接口和 PmBUS 以及 OTP/M
- MOSFET 和柵極驅(qū)動器單
- 數(shù)字恒定導通時間控制模式(CO
- Power Management Buck/
- 反激變換器傳導和輻射電磁干擾分析和抑制技術(shù)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究