国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET Caching(2)

2024-07-10 12:58:35
字體:
來源:轉載
供稿:網友
cache dependencies
依賴可以使鍵值在文件改變時,或是在某一個指定時間被刪除   
。讓我們看一下每種依賴。

文件依賴(file-based dependency)
文件依賴是指,當磁盤上的一個文件改變時,刪除cache對象中的對應一項。下面讓我們看一個從xml文件中讀取數據的例子。

dim dom as xmldocument()
dom.load(server.mappath("product.xml")
cache("productdata") = dom

當product.xml文件內容改變時,我們應該使cache中的數據失效。假設product.xml在aspx文件的同一目錄中,我們可以使用以下的代碼:

dim dependency as new cachedependency(server.mappath("product.xml"))
cache.insert("productdata", dom, dependency)

在這段代碼中,我們建立了一個cachedependecy類的實例dependency,并將product.xml的路徑傳給這個實例。然后使用insert方法建立一個依賴于文件的鍵值。

時間依賴(time-based dependency)
時間依賴就是在指定時間刪除cache對象中的一項。同樣我們可以使用insert方法來加入有時間依賴的鍵值。

絕對時間—設置一個絕對的時間。例如,10分鐘以后,刪除此項。
相對時間—當一個cache有若干時間沒有被訪問,刪除此項。
以下是一段代碼,使用相對時間依賴,使得productdata當有10分鐘沒有被訪問的話,將被刪除。每一次對productdata的訪問,都將使productdata保持另一個10分鐘的有效。

' 10 minute time span
cache.insert("productdata", loaddataset(), nothing, datetime.maxvalue, timespan.fromseconds(10))

以上是對cache api的簡單討論,大家從這里可以看出這套接口的簡單易用。asp.net使用這套api實現了頁面輸出緩存。


頁面輸出緩存(page output caching)
asp.net的頁面輸出緩存將把這個頁面的內容放在cache中。我們已經看過如何將一個數據集放入緩存。那么,能不能將整個頁面緩存呢?這樣的話,就不需要對每一個請求都執行代碼,可以直接從內存中獲取結果,這將帶來巨大的性能提高。

對頁面緩存有兩種接口,高層接口和底層接口。這里我們只討論高層接口。(對于底層接口,可以參考msdn中的相關文章)

高層接口包括兩個頁面指示符,一個表明頁面刷新的時間間隔,一個表明當某個參數變化時刷新頁面。

<%@ outputcache duration="10" % varybyparam="none">

將這個指示符放在頁面上部,頁面結果將被緩存10秒。10秒以后,這個頁面將被重新執行。下面是一個例子。

<%@ outputcache duration="10" % varybyparam="none">
<script runat="server">
public sub page_load()
span1.innerhtml = datetime.now.tostring("r")
end sub
</script>
<font size=6>the time is: <font color=red><span id="span1" runat="server"/></font></font>

這個頁面在第一次請求時被執行一次,顯示執行時的時間。這個結果將在緩存里保存10秒。假如我們在10:30:12時請求這個頁面,在此后的10秒內,我們將會看到同樣的輸出。


結論
對于asp程序員來說,緩存是一項易用而強大的新技術。它的使用和asp原來的application,session對象有許多相似的地方,只是在cache對象中的數據會自動失效。cache還支持文件,時間的依賴,更是支持回調。緩存技術還被用來實現了頁面緩存。
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 邯郸市| 上杭县| 罗江县| 邵东县| 绍兴县| 奉化市| 宝鸡市| 孝义市| 渝中区| 海宁市| 大连市| 平顶山市| 伊金霍洛旗| 陆川县| 临夏县| 拜城县| 宜良县| 西安市| 天等县| 新乡县| 广平县| 睢宁县| 罗定市| 清流县| 铜川市| 金塔县| 梨树县| 无为县| 中山市| 萨嘎县| 杭锦后旗| 孙吴县| 前郭尔| 达拉特旗| 合川市| 东方市| 兴义市| 巴彦淖尔市| 哈巴河县| 兴宁市| 鄂温|