當前位置:首頁 » 文件管理 » aspnet緩存

aspnet緩存

發布時間: 2022-01-09 22:40:13

① asp.net怎麼設置瀏覽器客戶端緩存

1. Expires:+過期時間

表示在指定時間後瀏覽器緩存失效,需要注意的是這兒的過期時間必須是HTTP格式的日期時間,其他的都會被解析成當前時間「之前」,緩存會馬上過期,HTTP的日期時間必須是格林威治時間(GMT),而不是本地時間。舉例:

② ASP.NET 數據緩存有什麼用 應該怎麼用

頁面緩存
使用OutputCache指令。
<%@ OutputCache Duration="3600"
Location="Any"
VaryByCustom="browser"
VaryByParam="RequestID" %>
其中Duration和VaryByParam特性是必須的。
Duration允許我們控制頁面在緩存中生存的時間(單位是秒)
VaryByParam允許我們緩存頁面的不同版本。在上面的例子中,VaryByParam設為了RequestID,所以ASP.NET使用RequestID參數的不同值,這些值或者是在HTTP GET的查詢字元串中傳入,或者是在HTTP POST的參數中傳入。可以通過檢查RequestID參數的值讓應用程序區分不同的用戶;通過在頁面的OutputCache指令中放置 VaryByParam="RequestID",可以讓ASP.NET為每個用戶緩存頁面的不同版本。
如果不想根據參數的值緩存頁面的不問版本,那麼只要把VaryByParam設為none。
也可以要求ASP.NET為每個可能的參數組合緩存頁面的一個版本。為此,可把VaryByParam設為*。

③ ASP.NET緩存常見的4種方式有哪些

1、分布式緩存Memcached

2、內存緩存,此佔用伺服器資源
3、XML緩存,這種最為常見

4、DATATABLE緩存

④ asp.net什麼情況使用緩存

有以下幾條緩存數據的規則。
第一,數據可能會被頻繁的被使用,這種數據可以緩存。
第二,數據的訪問頻率非常高,或者一個數據的訪問頻率不高,但是它的生存周期很長,這樣的數據最好也緩存起來。
第三是一個常常被忽略的問題,有時候我們緩存了太多數據,通常在一台X86的機子上,如果你要緩存的數據超過800M的話,就會出現內存溢出的錯誤。所以說緩存是有限的。換名話說,你應該估計緩存集的大小,把緩存集的大小限制在10以內,否則它可能會出問題。在Asp.net中,如果緩存過大的話也會報內存溢出錯誤,特別是如果緩存大的DataSet對象的時候。

你應該認真分析你的程序。根據實際情況來看哪裡該用,哪裡不該用。如:cache用得過多也會增大伺服器的壓力。整頁輸出緩存,又會影響數據的更新。

按照你舉例的論壇來看。首頁為什麼要用緩存呢?訪問量真的很大那為什麼不用靜態的技術呢?很多東西為什麼一定要在緩存裡面專呢?條條大路通羅馬!用靜態速度比緩存快得多吧。

⑤ .NET中的緩存有幾種

.NET中的緩存(僅供參考)

一.Output Caching (輸出緩存)

當一個網頁頻繁被訪問的時候,可以通過把整個網頁緩存來提高執行效率。這樣做的優點是,當用戶再次訪問這個網頁的時候,被格式化好的HTML會被直接顯示。

Output Caching 定製的兩種方法:
1.基於底層的API技術
2.基於高層的@OutputCaching
一旦Output Caching 被定製過,那麼這個網頁就會在第一次被訪問的時候生成cache,直到請求過期為止。

二.Page Fragment Caching (回調緩存)
作為Output的緩存的附加功能,還提供一種緩存技術,專門用於緩存用戶控制項或者網頁中的一部分東西。可以指定沒一部分或者某一個區域不被緩存。

在頁面中,指定返回參數,來決定控制項被緩存的部分。使用語句VaryBym語句指定控制項更具參數來改變。

三.Data Caching (數據緩存)
ASP.NET提供了一種非常快捷的方法進行資料庫緩存,用戶可以非常方便的對頁面變數進行緩存。並以此提高程序效率。

一個頁面變數的緩存生命周期與應用程序的緩存生命周期相同。

同時對後台數據進行修改的時候,還需要對Cache進行相應的處理。

四.SQL Cache (配置連接池,提高數據緩存)
通過配置資料庫連接池,只有當資料庫數據被改變的時候,緩存才會改變。

五.Cache Configuration (配置緩存)

⑥ Asp.Net WEb中怎麼清空緩存

我也想知道- -!!
如果要清空也頁面輸出緩存,可以通過增加幾行代碼實現
Response.Buffer = true;
Response.Expires = 0;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
Response.AddHeader("pragma", "no-cache");
Response.AddHeader("cache-control", "private");
Response.CacheControl = "no-cache";
或者設置<%@ OutputCache %> //具體的設置搜索下吧..
如果是ajax請求的,可以在請求的地址後面加隨機參數
如果是Cache里的緩存,剛看到幾行代碼
IDictionaryEnumerator cacheEnmu = HttpRuntime.Cache.GetEnumerator();
while (cacheEnmu.MoveNext())
{
HttpRuntime.Cache.Remove(cacheEnmu.Key.ToString());
}

⑦ asp.net cache如何使用

這要看你想怎麼用。是否用到其復雜的特性。比如:依賴項過期;移除通知。


如果都不用到。完全可以像session一樣使用

HttpRuntime.Cache["key"]=value;
objectvalue=HttpRuntime.Cache["key"];

如果你要用到cache的一些高級特性。需要參考msdn

下面我貼出cache的定義

//實現用於Web應用程序的緩存。無法繼承此類。
publicsealedclassCache:IEnumerable
{
//用於Cache.Insert(...)方法調用中的absoluteExpiration參數中以指示項從不過期。
;

//用作Cache.Insert(...)或Cache.Add(...)
//方法調用中的slidingExpiration參數,以禁用可調過期。
;


//獲取或設置指定鍵處的緩存項。
publicobjectthis[stringkey]{get;set;}


//將指定項添加到System.Web.Caching.Cache對象,該對象具有依賴項、過期和優先順序策略
//以及一個委託(可用於在從Cache移除插入項時通知應用程序)。
publicobjectAdd(stringkey,objectvalue,CacheDependencydependencies,
DateTimeabsoluteExpiration,TimeSpanslidingExpiration,
CacheItemPrioritypriority,);


//從System.Web.Caching.Cache對象檢索指定項。
//key:要檢索的緩存項的標識符。
//返回結果:檢索到的緩存項,未找到該鍵時為null。
publicobjectGet(stringkey);


publicvoidInsert(stringkey,objectvalue);
publicvoidInsert(stringkey,objectvalue,CacheDependencydependencies);
publicvoidInsert(stringkey,objectvalue,CacheDependencydependencies,
DateTimeabsoluteExpiration,TimeSpanslidingExpiration);

//摘要:
//向System.Web.Caching.Cache對象中插入對象,後者具有依賴項、過期和優先順序策略
//以及一個委託(可用於在從Cache移除插入項時通知應用程序)。
//
//參數:
//key:
//用於引用該對象的緩存鍵。
//
//value:
//要插入緩存中的對象。
//
//dependencies:
//該項的文件依賴項或緩存鍵依賴項。當任何依賴項更改時,該對象即無效,
//並從緩存中移除。如果沒有依賴項,則此參數包含null。
//
//absoluteExpiration:
//所插入對象將過期並被從緩存中移除的時間。
//如果使用絕對過期,則slidingExpiration參數必須為Cache.NoSlidingExpiration。
//
//slidingExpiration:
//最後一次訪問所插入對象時與該對象過期時之間的時間間隔。如果該值等效於20分鍾,
//則對象在最後一次被訪問20分鍾之後將過期並被從緩存中移除。如果使用可調過期,則
//absoluteExpiration參數必須為System.Web.Caching.Cache.NoAbsoluteExpiration。
//
//priority:
//該對象相對於緩存中存儲的其他項的成本,由System.Web.Caching.CacheItemPriority枚舉表示。
//該值由緩存在退出對象時使用;具有較低成本的對象在具有較高成本的對象之前被從緩存移除。
//
//onRemoveCallback:
//在從緩存中移除對象時將調用的委託(如果提供)。
//當從緩存中刪除應用程序的對象時,可使用它來通知應用程序。
//
//異常:
//System.ArgumentException:
//為要添加到Cache中的項設置absoluteExpiration和slidingExpiration參數。
//
//System.ArgumentNullException:
//key或value參數為null。
//
//System.ArgumentOutOfRangeException:
//將slidingExpiration參數設置為小於TimeSpan.Zero或大於一年的等效值。
publicvoidInsert(stringkey,objectvalue,CacheDependencydependencies,
DateTimeabsoluteExpiration,TimeSpanslidingExpiration,
CacheItemPrioritypriority,);

//從應用程序的System.Web.Caching.Cache對象移除指定項。
publicobjectRemove(stringkey);

//將對象與依賴項策略、到期策略和優先順序策略
//以及可用來在從緩存中移除項【之前】通知應用程序的委託一起插入到Cache對象中。
//注意:此方法受以下版本支持:3.5SP1、3.0SP1、2.0SP1
publicvoidInsert(stringkey,objectvalue,CacheDependencydependencies,
DateTimeabsoluteExpiration,TimeSpanslidingExpiration,
);
}

⑧ asp.net aspx文件 緩存設定問題

1.概念

Cache-control用於控制HTTP緩存(在HTTP/1.0中可能部分沒實現,僅僅實現了Pragma: no-cache)

數據包中的格式:

Cache-Control: cache-directive

cache-directive可以為以下:

request時用到:

| "no-cache"
| "no-store"
| "max-age" "=" delta-seconds
| "max-stale" [ "=" delta-seconds ]
| "min-fresh" "=" delta-seconds
| "no-transform"
| "only-if-cached"
| "cache-extension"

response時用到:

| "public"
| "private" [ "=" <"> field-name <"> ]
| "no-cache" [ "=" <"> field-name <"> ]
| "no-store"
| "no-transform"
| "must-revalidate"
| "proxy-revalidate"
| "max-age" "=" delta-seconds
| "s-maxage" "=" delta-seconds
| "cache-extension"

部分說明:
根據是否可緩存分為
Public 指示響應可被任何緩存區緩存。
Private 指示對於單個用戶的整個或部分響應消息,不能被共享緩存處理。這允許伺服器僅僅描述當用戶的
部分響應消息,此響應消息對於其他用戶的請求無效。
no-cache 指示請求或響應消息不能緩存(HTTP/1.0用Pragma的no-cache替換)
根據什麼能被緩存
no-store 用於防止重要的信息被無意的發布。在請求消息中發送將使得請求和響應消息都不使用緩存。
根據緩存超時
max-age 指示客戶機可以接收生存期不大於指定時間(以秒為單位)的響應。
min-fresh 指示客戶機可以接收響應時間小於當前時間加上指定時間的響應。
max-stale 指示客戶機可以接收超出超時期間的響應消息。如果指定max-stale消息的值,那麼客戶機可以
接收超出超時期指定值之內的響應消息。
Expires 表示存在時間,允許客戶端在這個時間之前不去檢查(發請求),等同max-age的
效果。但是如果同時存在,則被Cache-Control的max-age覆蓋。
格式:
Expires = "Expires" ":" HTTP-date
例如
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必須是GMT格式)

2.應用
通過HTTP的META設置expires和cache-control
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta http-equiv="Expires" content="Mon, 20 Jul 2009 23:00:00 GMT" />
上述設置僅為舉例,實際使用其一即可。這樣寫的話僅對該網頁有效,對網頁中的圖片或其他請求無效,並不會做任何cache。
這樣客戶端的請求就多了,盡管只是檢查Last-modified狀態的東西,但是請求一多對瀏覽速度必定有影響。
如果要對文件添加cache可以通過apache的mod_expire模塊,寫法為
<IfMole mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 days"
</IfMole>
記得ExpiresActive設為On,我起先沒設置On,似乎怎樣YSlow都查不到緩存機制。這樣添加的話就是默認所有的。
如果要針對個別MIME類型則可以:
ExpiresByType image/gif "access plus 5 hours 3 minutes"
見 Apache Mole mod_expires
另外,當點擊瀏覽器上的刷新,客戶端發送的請求中均是max-age=0,表示validate操作,發送請求到伺服器
要求檢查cache,再更新cache,一般得到的是304 Not Modified,表示沒變動。

Response.CacheControl = "public";
Response.Expires = 60 * 12;

⑨ ASP.Net緩存問題

一樣的名字,當然只能得到最後的緩存。
這樣用緩存本身就不對,可以用用戶的sessionid來做緩存的key

⑩ asp.net把數據放到緩存

首先,把從文件里讀出來的數據放到緩存里,然後從緩存里讀取這些數據,用下面兩個函數。
實際可以這么做,每次需要違禁詞的時候,都嘗試從緩存里讀取,如果讀取的是NULL,從硬碟里讀取後放到緩存,然後使用;如果不是NULL,直接使用.

設置緩存
public static void SetCache(string CacheKey, object objObject)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
objCache.Insert(CacheKey, objObject);
}

讀取緩存
public static object GetCache(string CacheKey)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
return objCache[CacheKey];
}

熱點內容
android音樂波形圖 發布:2024-11-15 11:57:12 瀏覽:378
福建社保銀行卡初始密碼是多少 發布:2024-11-15 11:47:40 瀏覽:911
游戲多開用什麼配置 發布:2024-11-15 11:46:51 瀏覽:729
管理java版本 發布:2024-11-15 11:44:03 瀏覽:629
ndk編譯的程序如何執行 發布:2024-11-15 11:43:18 瀏覽:626
輕應用伺服器適合搭建網站嗎 發布:2024-11-15 11:36:08 瀏覽:246
c語言的百分號 發布:2024-11-15 11:34:24 瀏覽:31
一加五安卓8什麼時候推送 發布:2024-11-15 11:19:40 瀏覽:854
暗影騎士擎有哪些配置 發布:2024-11-15 11:13:46 瀏覽:598
方舟主機專用伺服器是什麼意思 發布:2024-11-15 11:12:23 瀏覽:8