当前位置:首页 » 文件管理 » 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];
}

热点内容
压缩某个文件夹 发布:2024-11-15 09:03:11 浏览:891
网址能解压吗 发布:2024-11-15 08:54:09 浏览:933
python更改目录 发布:2024-11-15 08:41:08 浏览:265
服务器闪存可以装在一般电脑上吗 发布:2024-11-15 08:36:46 浏览:8
安卓手机怎么查询自己的路线轨迹 发布:2024-11-15 08:32:19 浏览:969
phpdatet 发布:2024-11-15 08:32:17 浏览:507
HDB3编译码实验 发布:2024-11-15 08:17:31 浏览:212
怪星球编程 发布:2024-11-15 08:15:55 浏览:844
慧编程价格 发布:2024-11-15 08:14:09 浏览:459
python多行注释的快捷键 发布:2024-11-15 08:09:14 浏览:957