最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
ASP.NET緩存類型有哪些

這篇文章主要介紹“ASP.NET緩存類型有哪些”,在日常操作中,相信很多人在ASP.NET緩存類型有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET緩存類型有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)是一家專業(yè)提供磁縣企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都做網(wǎng)站、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為磁縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

要提升ASP.NET應(yīng)用程序的性能,最簡單、最有效的方式就是使用內(nèi)建的緩存引擎。雖然也能構(gòu)建自己的緩存,但由于緩存引擎已提供了如此多的功能,所以完全不必如此麻煩。在很大程度上,ASP.NET開發(fā)者在Web應(yīng)用程序中,能將緩存引擎的功能直接包裝到自己的數(shù)據(jù)表示及訪問類中。

ASP.NET緩存引擎類型

整頁輸出緩存是在一個頁被***請求時,將整個頁呈現(xiàn)好的HTML內(nèi)容緩存下來。后續(xù)請求將直接取用緩存拷貝。
部分緩存是指緩存一部分HTML內(nèi)容,這類似一個Web用戶控件的輸出。之所以叫這樣的一個名字,是因為我們一般說“將一部分HTML提交給一個頁”。

數(shù)據(jù)緩存關(guān)注的是單獨的變量或數(shù)據(jù)項的緩存。它在比以上兩種緩存類型都要低的一個級別上工作。

整頁輸出緩存

整頁輸出緩存是最簡單的緩存類型,它只要求為準(zhǔn)備緩存的頁添加一個預(yù)處理指令 OutputCache。使用這種緩存,就不必重新處理一個頁的Init, Load,PreRender,Render以及Unload事件。假如那些事件要訪問像數(shù)據(jù)庫那樣的一個后端系統(tǒng),那么節(jié)省的時間將是非??捎^的。ASP.NET緩存一個頁的幾個變體,并將每個頁都與后續(xù)請求相關(guān)聯(lián)。

部分緩存

部分緩存允許只緩存部分HTML,它的效率很高,因為一個頁中經(jīng)常變化的部分可與那些不經(jīng)常變化部分的部分合并到一起,同時仍能從緩存中檢索靜態(tài)的部分。一個實例是將“部分緩存”應(yīng)用于需要調(diào)用XML Web服務(wù)的Web用戶控件。這樣可獲得很高的效率,因為它避免了你的網(wǎng)站與Web服務(wù)過度緊密地耦合,同時還能顯著提升性能。

要使用部分緩存,同樣可在HTML頁的頂部放置一條OutputCache預(yù)處理指令。但這一次,我們準(zhǔn)備把它放到Web用戶控件的ASCX頁中。注意使用部分緩存時, Location和VaryByHeader屬性將不再支持,但新增了對VaryByControl屬性的支持。

使用VaryByControl屬性,可用一個由分號分隔的列表來指定用戶控件的一個或多個屬性??蔀閷傩灾档拿恳环N組合來創(chuàng)建緩存的版本。例如,假定你的用戶控件揭示出一個自定義的 State屬性,它控制著要顯示用戶控件的哪些元素。使用以下預(yù)處理指令,可針對 State的每個值來緩存控件所具體呈現(xiàn)的一個版本:

<%@ OutputCache Duration="300" VaryByControl="State" %>
但在緩存Web用戶控件時,記住ASP.NET運行庫會直接用緩存的HTML來替換實際控件,忽略平常會發(fā)生的任何控件處理。這暗示著在網(wǎng)頁中執(zhí)行的代碼不能程序化地操縱一個緩存的用戶控件或者它的任何屬性。換言之,Web用戶控件必須能完全自主,并能通過它的 Load和Init事件來初始化自己,以便有效地緩存。

也可聲明性地完成部分緩存,方法是使用一個屬性而不是使用OutputCache預(yù)處理指令。在代碼隱藏文件中, PartialCaching屬性可放在從UserControl派生的一個類中,使ASP.NET運行庫能夠讀取它,并相應(yīng)地緩存呈現(xiàn)好的HTML。例如,以下來自代碼隱藏類的聲明能根據(jù)查詢字符串中的 id值,將Web用戶控件緩存5分鐘。

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

ASP.NET緩存引擎支持的***一種緩存類型是“數(shù)據(jù)緩存”。根據(jù)定義,它的工作級別要低于整頁輸出緩存和部分緩存。假如幾個網(wǎng)頁都要使用相同的數(shù)據(jù)(例如一個產(chǎn)品列表),但要以不同方式來顯示這些數(shù)據(jù),就可考慮使用這種緩存。當(dāng)然,數(shù)據(jù)緩存之所以具有性能優(yōu)勢,是因為減少了對后端數(shù)據(jù)庫的調(diào)用次數(shù)。

為了在緩存中添加一個項,需使用Page或UserControl類的Cache屬性,因為這兩個類最終都是從Control類派生的。 Cache屬性揭示出了System.Web.Caching.Cache對象,利用它可將數(shù)據(jù)當(dāng)作鍵和值的一個組合來存儲。使用該屬性,開發(fā)者可編寫代碼來填充一個項,并把它放到緩存中;如果該項已經(jīng)存在,就直接將其從緩存中取出。如以下C#代碼所示。

DataTable dt = null; if (this.Cache["Products"] == null) { // Go get the data from the database this.Cache.Insert("Products", dt, null, _ DateTime.Now.AddHours(6), TimeSpan.Zero); } else { dt = this.Cache["Products"] As DataTable; }
上例首先檢查具有Products鍵的項是否在緩存中。如果不在,就從后端數(shù)據(jù)庫檢索一個ADO.NET DataTable,并使用Insert方法把它放到緩存中。本例使用的是 Insert的一個重載版本,它允許為緩存對象指定一個絕對過期時間(6小時),而不是指定一個周期性的過期。相反,如果緩存中已經(jīng)有這個項,就將其取回,并使用 As表達(dá)式,將其強(qiáng)制轉(zhuǎn)換回一個DataTable。

對ADO.NET檢索到的數(shù)據(jù)進(jìn)行緩存時,注意既可像上例那樣緩存DataTable對象,也可緩存整個 DataSet對象,因為兩種對象都同任何數(shù)據(jù)源完全地斷開,不會保持?jǐn)?shù)據(jù)庫連接。對數(shù)據(jù)讀取器(比如 SqlDataReader)進(jìn)行緩存似乎更好一些,因為它們只使用一次(它們是“只進(jìn)”的讀取器),而且在打開的情況下將一直占據(jù)一個數(shù)據(jù)庫連接。

ASP.NET緩存引擎強(qiáng)大的靈活性和功能使其成為創(chuàng)建高性能ASP.NET應(yīng)用程序時最重要的特性之一。

到此,關(guān)于“ASP.NET緩存類型有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站題目:ASP.NET緩存類型有哪些
分享地址:http://fisionsoft.com.cn/article/pegdsd.html