人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

ASP.NET中運(yùn)用Caching

ASP.NET中運(yùn)用Caching

更新時(shí)間:2022-07-09 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

Caching緩存,就是將一些生成代價(jià)比較大的常用數(shù)據(jù),保存起來(lái)重用。一般數(shù)據(jù)都保存在內(nèi)存中,因?yàn)閺膬?nèi)存中讀取數(shù)據(jù)比從數(shù)據(jù)庫(kù)等其他地方要快。
  ASP.NET通過兩種方式支持緩存:通過Cache API存儲(chǔ)任意數(shù)據(jù),通過頁(yè)面輸出緩存經(jīng)常被訪問的頁(yè)面。讓我們來(lái)看一個(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ù)一周才變化一次。所以以下的幾種操作將帶來(lái)性能上的損失。
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)求,來(lái)提高性能。同時(shí),由于減少了處理每個(gè)請(qǐng)求使用的資源,因此也提高了系統(tǒng)的伸縮性。
  Cache API對(duì)于ASP開發(fā)人員來(lái)說(shuō),把常用的數(shù)據(jù)保存在內(nèi)存里,并不是一個(gè)全新的概念。在ASP里,有兩個(gè)對(duì)象完成它。
Session 對(duì)象
Application 對(duì)象
  Session用來(lái)保存單個(gè)用戶在多個(gè)請(qǐng)求間共享的數(shù)據(jù),雖然在ASP.NET中有一些小的改動(dòng),但這些改動(dòng)主要是在應(yīng)用級(jí)的,對(duì)Session對(duì)象來(lái)說(shuō),仍然是一個(gè)保存鍵與鍵值對(duì)的集合。Application對(duì)象在ASP.NET也被保存下來(lái)了,同樣是鍵與鍵值對(duì)的集合。在ASP和ASP.NET中,我們都可以使用以下代碼來(lái)操作Application 對(duì)象




Application("SomeInterestingData") = "Example data"
Response.Write(Application("SomeInterestingData")
我們可以使用同樣的方法訪問Session對(duì)象。
  ASP.NET帶來(lái)了一個(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è)事件中來(lái)更新鍵值或取消刪除操作。
當(dāng)我們?cè)谑褂肅ache對(duì)象時(shí),必須注意這一點(diǎn):
使用Cache對(duì)象中的鍵值之前,必須每一次都檢查鍵值是否存在。
  由于在Cache對(duì)象中的鍵值由于其依賴或者使用頻率較低,都會(huì)被刪除,所以,每一次使用Cache中的對(duì)象,都必須檢查是否存在。
  例如,我們可以用如下一段代碼來(lái)返回DataSet.




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ì)象來(lái)改寫這段代碼,使只在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ì)象有許多相似之處,而最大的不同是Cac

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 秦皇岛市| 星子县| 广丰县| 太和县| 甘德县| 庆城县| 临澧县| 微博| 永平县| 阿拉善左旗| 芒康县| 海阳市| 铜山县| 银川市| 琼结县| 铜鼓县| 达尔| 舞钢市| 西青区| 乐业县| 长海县| 思茅市| 嵩明县| 阿拉善左旗| 康马县| 大城县| 青铜峡市| 富源县| 宜宾县| 启东市| 吕梁市| 隆回县| 虞城县| 旅游| 秀山| 新津县| 广河县| 武邑县| 天气| 托克逊县| 旬阳县|