欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VB.NET中Caching的使用方法

 更新時(shí)間:2013年04月28日 16:21:58   作者:  
Caching緩存,就是將一些生成代價(jià)比較大的常用數(shù)據(jù),保存起來重用。一般數(shù)據(jù)都保存在內(nèi)存中,因?yàn)閺膬?nèi)存中讀取數(shù)據(jù)比從數(shù)據(jù)庫(kù)等其他地方要快。

ASP.NET通過兩種方式支持緩存:通過Cache API存儲(chǔ)任意數(shù)據(jù),通過頁(yè)面輸出緩存經(jīng)常被訪問的頁(yè)面。讓我們來看一個(gè)例子。

一個(gè)電子商務(wù)的站點(diǎn), 它的目錄一般一周更新一次。站點(diǎn)提供了一套用戶界面讓客戶訂購(gòu)產(chǎn)品。當(dāng)一個(gè)客戶瀏覽目錄時(shí),系統(tǒng)將通過網(wǎng)絡(luò)去查詢數(shù)據(jù)庫(kù),進(jìn)行各種計(jì)算,最后返回結(jié)果。

從服務(wù)器查詢這些目錄數(shù)據(jù)的操作是很頻繁的。我們知道,這些數(shù)據(jù)一周才變化一次。所以以下的幾種操作將帶來性能上的損失。

1. 執(zhí)行ASP.NET的程序生成對(duì)數(shù)據(jù)庫(kù)的查詢語(yǔ)句。
2. 通過網(wǎng)絡(luò),和數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行通訊。
3. 數(shù)據(jù)庫(kù)服務(wù)器編譯執(zhí)行查詢(或是執(zhí)行儲(chǔ)存過程)。

緩存機(jī)制可以減少許多這樣的工作,提高應(yīng)用的性能和伸縮性。我們能緩存結(jié)果以便能靜態(tài)的處理客戶請(qǐng)求,來提高性能。同時(shí),由于減少了處理每個(gè)請(qǐng)求使用的資源,因此也提高了系統(tǒng)的伸縮性。

Cache API對(duì)于ASP開發(fā)人員來說,把常用的數(shù)據(jù)保存在內(nèi)存里,并不是一個(gè)全新的概念。在ASP里,有兩個(gè)對(duì)象完成它。

Session 對(duì)象

Application 對(duì)象

Session用來保存單個(gè)用戶在多個(gè)請(qǐng)求間共享的數(shù)據(jù),雖然在ASP.NET中有一些小的改動(dòng),但這些改動(dòng)主要是在應(yīng)用級(jí)的,對(duì)Session對(duì)象來說,仍然是一個(gè)保存鍵與鍵值對(duì)的集合。Application對(duì)象在ASP.NET也被保存下來了,同樣是鍵與鍵值對(duì)的集合。在ASP和ASP.NET中,我們都可以使用以下代碼來操作Application 對(duì)象

復(fù)制代碼 代碼如下:

Application("SomeInterestingData") = "Example data"
Response.Write(Application("SomeInterestingData")

我們可以使用同樣的方法訪問Session對(duì)象。

ASP.NET帶來了一個(gè)新的鍵與鍵值的對(duì)象—Cache.除了存儲(chǔ)鍵與鍵值對(duì)外,Cache對(duì)象還提供了另外的一些存儲(chǔ)短期數(shù)據(jù)的新功能:依賴—當(dāng)一個(gè)鍵插入Cache對(duì)象時(shí),我們可以設(shè)置它的依賴性。當(dāng)依賴的對(duì)象改變時(shí),這個(gè)鍵將被刪除。現(xiàn)在支持的依賴對(duì)象有文件,其他的鍵和時(shí)間。自動(dòng)失效—沒有依賴的鍵值,當(dāng)使用頻率不高時(shí),將被自動(dòng)刪除。支持回調(diào)—當(dāng)一個(gè)鍵將被刪除時(shí),我們可以得到一個(gè)事件,在這個(gè)事件中來更新鍵值或取消刪除操作。
當(dāng)我們?cè)谑褂肅ache對(duì)象時(shí),必須注意這一點(diǎn):使用Cache對(duì)象中的鍵值之前,必須每一次都檢查鍵值是否存在。由于在Cache對(duì)象中的鍵值由于其依賴或者使用頻率較低,都會(huì)被刪除,所以,每一次使用Cache中的對(duì)象,都必須檢查是否存在。例如,我們可以用如下一段代碼來返回DataSet.

復(fù)制代碼 代碼如下:

Private Function LoadDataSet() As DataSet
Dim sqlConnection As SQLConnection
Dim sqlAdapater As SQLDataSetCommand
Dim datasetProducts As New DataSet()
Dim sqlDSN As String
Dim sqlSelect As String
" Connection String and Select statement
sqlDSN = "server=localhost;uid=sa;pwd=;database=grocertogo"
sqlSelect = "Select * From Products"
" Connect
sqlConnection = new SQLConnection(sqlDSN)
sqlAdapater = new SQLDataSetCommand(sqlSelect, sqlConnection)
" Fill dataset create product table
sqlAdapter1.FillDataSet(datasetProducts, "products")
Return products
End Function
我們很容易用Cache對(duì)象來改寫這段代碼,使只在DataSet不存在在Cache中才調(diào)用LoadDataSet()。
Public Function GetProductData() As DataSet
If (IsNothing(Cache("ProductData")) Then
Cache("ProductData") = LoadDataSet()
Return Cache("ProductData")
End Function

Cache對(duì)象在許多地方和Application對(duì)象有許多相似之處,而最大的不同是Cache支持了依賴。

相關(guān)文章

  • C#使用XSLT實(shí)現(xiàn)xsl、xml與html相互轉(zhuǎn)換

    C#使用XSLT實(shí)現(xiàn)xsl、xml與html相互轉(zhuǎn)換

    這篇文章介紹了C#使用XSLT實(shí)現(xiàn)xsl、xml與html相互轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C# 獲取硬盤號(hào),CPU信息,加密解密技術(shù)的步驟

    C# 獲取硬盤號(hào),CPU信息,加密解密技術(shù)的步驟

    這篇文章主要介紹了C# 獲取硬盤號(hào),CPU信息,加密解密技術(shù)的步驟,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2021-01-01
  • C#實(shí)現(xiàn)屏幕拷貝的方法

    C#實(shí)現(xiàn)屏幕拷貝的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)屏幕拷貝的方法,實(shí)例分析了兩種常用的屏幕拷貝實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • C# 實(shí)現(xiàn)Table的Merge,Copy和Clone

    C# 實(shí)現(xiàn)Table的Merge,Copy和Clone

    這篇文章主要介紹了C# 實(shí)現(xiàn)Table的Merge,Copy和Clone,幫助大家更好的利用c#處理文件,感興趣的朋友可以了解下
    2020-12-12
  • C#異步執(zhí)行任務(wù)的方法

    C#異步執(zhí)行任務(wù)的方法

    這篇文章主要介紹了C#異步執(zhí)行任務(wù)的方法,以一個(gè)簡(jiǎn)單實(shí)例形式分析了C#異步執(zhí)行的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C#中ExecuteNonQuery()返回值注意點(diǎn)分析

    C#中ExecuteNonQuery()返回值注意點(diǎn)分析

    這篇文章主要介紹了C#中ExecuteNonQuery()返回值注意點(diǎn)分析,對(duì)于C#數(shù)據(jù)庫(kù)程序設(shè)計(jì)有很大的借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C# TSC打印二維碼和條形碼的實(shí)現(xiàn)方法

    C# TSC打印二維碼和條形碼的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇C# TSC打印二維碼和條形碼的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • C# IQueryable<T>揭開表達(dá)式樹的神秘面紗

    C# IQueryable<T>揭開表達(dá)式樹的神秘面紗

    這篇文章主要介紹了C# IQueryable<T>表達(dá)式樹,對(duì)IQueryable<T>感興趣的同學(xué),必須要仔細(xì)看一下
    2021-04-04
  • C#文件讀寫操作詳細(xì)操作指南

    C#文件讀寫操作詳細(xì)操作指南

    這篇文章主要給大家介紹了關(guān)于C#文件讀寫操作詳細(xì)操作指南,在后端開發(fā)中使用C#語(yǔ)言進(jìn)行文件操作是一個(gè)常見的任務(wù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Unity實(shí)現(xiàn)顏色漸變滑動(dòng)條

    Unity實(shí)現(xiàn)顏色漸變滑動(dòng)條

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)顏色漸變滑動(dòng)條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論