缓存问题 ASP.NET中如何通过代码清楚应用程序的页面缓存和数据缓存 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议楼主好好看看微软关于asp.net缓存的msdn说明。 楼主给你些资料把。1.页面缓存http://www.cnblogs.com/guanfei/archive/2007/07/29/835497.htmlhttp://msdn.microsoft.com/zh-cn/library/system.web.ui.outputcachelocation.aspxhttp://msdn.microsoft.com/zh-cn/library/hdxfb6cy.aspx MSDN2.数据库缓存http://www.asp.net/learn/data-access/tutorial-61-vb.aspxhttp://www.cnblogs.com/webabcd/archive/2007/02/15/651419.htmlhttp://msdn.microsoft.com/zh-cn/library/system.web.caching.cacheitempriority.aspx using System.Web.Caching;赋值:Cache["first"] = "first Item";插入:Cache.Insert("Second", "Second Item");移除:Cache.Remove("first"); ASP.NET提供了两种基本的缓存机制来提供缓存功能。一种是应用程序缓存,它允许开发者将程序生成的数据或报表业务对象放入缓存中。另外一种缓存机制是页输出缓存,利用它,可以直接获取存放在缓存中的页面,而不需要经过繁杂的对该页面的再次处理。应用程序缓存其实现原理说来平淡无奇,仅仅是通过ASP.NET管理内存中的缓存空间。放入缓存中的应用程序数据对象,以键/值对的方式存储,这便于用户在访问缓存中的数据项时,可以根据key值判断该项是否存在缓存中。放入在缓存中的数据对象其生命周期是受到限制的,即使在整个应用程序的生命周期里,也不能保证该数据对象一直有效。ASP.NET可以对应用程序缓存进行管理,例如当数据项无效、过期或内存不足时移除它们。此外,调用者还可以通过CacheItemRemovedCallback委托,定义回调方法使得数据项被移除时能够通知用户。在.Net Framework中,应用程序缓存通过System.Web.Caching.Cache类实现。它是一个密封类,不能被继承。对于每一个应用程序域,都要创建一个Cache类的实例,其生命周期与应用程序域的生命周期保持一致。我们可以利用Add或Insert方法,将数据项添加到应用程序缓存中 1,手动移除2,设置自动超时时间3,设置事件出触发CACHE过期 (1) 服务端 Response.Buffer = true; Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1); Response.Expires = 0; Response.CacheControl = "no-cache"; Response.AddHeader("Pragma", "No-Cache"); (2) 客户端 <HEAD> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="0"> </HEAD> 相对于应用程序缓存而言,页输出缓存的应用更为广泛。它可以通过内存将处理后的ASP.NET页面存储起来,当客户端再一次访问该页面时,可以省去页面处理的过程,从而提高页面访问的性能,以及Web服务器的吞吐量。例如,在一个电子商务网站里,用户需要经常查询商品信息,这个过程会涉及到数据库访问以及搜索条件的匹配,在数据量较大的情况下,如此的搜索过程是较为耗时的。此时,利用页输出缓存就可以将第一次搜索得到的查询结果页存储在缓存中。当用户第二次查询时,就可以省去数据查询的过程,减少页面的响应时间。页输出缓存分为整页缓存和部分页缓存。我们可以通过@OutputCache指令完成对Web页面的输出缓存。它主要包含两个参数:Duration和VaryByParam。Duration参数用于设置页面或控件进行缓存的时间,其单位为秒。如下的设置表示缓存在60秒内有效:<%@ OutputCache Duration=“60“ VaryByParam=“none“ %>只要没有超过Duration设置的期限值,当用户访问相同的页面或控件时,就可以直接在缓存中获取。使用VaryByParam参数可以根据设置的参数值建立不同的缓存。例如在一个输出天气预报结果的页面中,如果需要为一个ID为txtCity的TextBox控件建立缓存,其值将显示某城市的气温,那么我们可以进行如下的设置:<%@ OutputCache Duration=”60” VaryByParam=”txtCity” %>如此一来,ASP.NET会对txtCity控件的值进行判断,只有输入的值与缓存值相同,才从缓存中取出相应的值。这就有效地避免了因为值的不同而导致输出错误的数据。利用缓存的机制对性能的提升非常明显。通过ACT(Application Center Test)的测试,可以发现设置缓存后执行的性能比未设置缓存时的性能足足提高三倍多。 Cache cache=HttpRuntime.Cache; int Count=cache.Count; IDictionaryEnumerator CacheEnum=cache.GetEnumerator(); while(CacheEnum.MoveNext()) { string cacheItem=Server.HtmlEncode(CacheEnum.Key.Tostring()); cache.Remove(cacheItem); } 100分求AspnetPager用法 AspNetPager控件的问题 急!关于后台安全性 请大家帮忙解决下错误 谢谢~ GridView 显示数据问题 asp.net Web开发 实现换皮肤功能 ====一个貌视简单的问题:服务器标记的格式不正确。==== 关于无边框页面的问题,各位大哥救救俺吧 ajax问题 怎么用HTML语言写一个ListBox控件啊,目地是固定大小,当文字多时可自动出来滚动条来现示?详细请看正文 如何做论坛的自动发送邮件的功能? 做一个开关
http://www.cnblogs.com/guanfei/archive/2007/07/29/835497.html
http://msdn.microsoft.com/zh-cn/library/system.web.ui.outputcachelocation.aspx
http://msdn.microsoft.com/zh-cn/library/hdxfb6cy.aspx MSDN2.数据库缓存
http://www.asp.net/learn/data-access/tutorial-61-vb.aspx
http://www.cnblogs.com/webabcd/archive/2007/02/15/651419.html
http://msdn.microsoft.com/zh-cn/library/system.web.caching.cacheitempriority.aspx
Cache["first"] = "first Item";插入:
Cache.Insert("Second", "Second Item");移除:
Cache.Remove("first");
应用程序缓存其实现原理说来平淡无奇,仅仅是通过ASP.NET管理内存中的缓存空间。放入缓存中的应用程序数据对象,以键/值对的方式存储,这便于用户在访问缓存中的数据项时,可以根据key值判断该项是否存在缓存中。
放入在缓存中的数据对象其生命周期是受到限制的,即使在整个应用程序的生命周期里,也不能保证该数据对象一直有效。ASP.NET可以对应用程序缓存进行管理,例如当数据项无效、过期或内存不足时移除它们。此外,调用者还可以通过CacheItemRemovedCallback委托,定义回调方法使得数据项被移除时能够通知用户。
在.Net Framework中,应用程序缓存通过System.Web.Caching.Cache类实现。它是一个密封类,不能被继承。对于每一个应用程序域,都要创建一个Cache类的实例,其生命周期与应用程序域的生命周期保持一致。我们可以利用Add或Insert方法,将数据项添加到应用程序缓存中
2,设置自动超时时间
3,设置事件出触发CACHE过期
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");
(2) 客户端
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>
页输出缓存分为整页缓存和部分页缓存。我们可以通过@OutputCache指令完成对Web页面的输出缓存。它主要包含两个参数:Duration和VaryByParam。Duration参数用于设置页面或控件进行缓存的时间,其单位为秒。如下的设置表示缓存在60秒内有效:
<%@ OutputCache Duration=“60“ VaryByParam=“none“ %>
只要没有超过Duration设置的期限值,当用户访问相同的页面或控件时,就可以直接在缓存中获取。
使用VaryByParam参数可以根据设置的参数值建立不同的缓存。例如在一个输出天气预报结果的页面中,如果需要为一个ID为txtCity的TextBox控件建立缓存,其值将显示某城市的气温,那么我们可以进行如下的设置:
<%@ OutputCache Duration=”60” VaryByParam=”txtCity” %>
如此一来,ASP.NET会对txtCity控件的值进行判断,只有输入的值与缓存值相同,才从缓存中取出相应的值。这就有效地避免了因为值的不同而导致输出错误的数据。
利用缓存的机制对性能的提升非常明显。通过ACT(Application Center Test)的测试,可以发现设置缓存后执行的性能比未设置缓存时的性能足足提高三倍多。
int Count=cache.Count;
IDictionaryEnumerator CacheEnum=cache.GetEnumerator();
while(CacheEnum.MoveNext())
{
string cacheItem=Server.HtmlEncode(CacheEnum.Key.Tostring());
cache.Remove(cacheItem);
}