当前位置:首页 » 文件管理 » aspnet设置缓存

aspnet设置缓存

发布时间: 2022-05-03 11:06:41

❶ asp.net MVC的缓存问题

[OutputCache(Duration = 10, VaryByParam = "None", VaryByCustom = "browser")]
这个是缓存在浏览器中,不同浏览器有些不支持缓存
ServerAndClient是缓存在服务器和客户端都有

❷ 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];
}

❸ asp.net怎么设置清除页面缓存而且防止同时登录

//清除页面缓存,防止页面回退重复提交数据 在页面里做以下设置就可以使页面的缓存失效,每次都需要获取新页面。 Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); /* 要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在。 在这里使用一个cache存放已经登陆的用户名,但是还有一个问题就是要知道用户是什么时候离开系统的呢?这就要定期清除cache中的内容了,也就是设置一个cache的时间。 这样就达到了防止同时登陆的效果,具体代码如下,放在登陆成功的地方: */ string key = TextBox1.Text; //用户名文本框设为cache关键字 string uer = Convert.ToString(Cache[key]); //读取cache中用户相应的值 //判断cache中是否有用户的信息,如果没有相关的值,说明用户未登陆 if (uer == null || uer == String.Empty) { //定义cache过期时间 TimeSpan SessTimeout = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0); //第一次登陆的时候插入一个用户相关的cache值, HttpContext.Current.Cache.Insert(key, key, null, DateTime.MaxValue, SessTimeout, System.Web.Caching.CacheItemPriority.NotRemovable, null); Session[“ADMINID”] = TextBox1.Text; Response.Redirect(“main.aspx”); } else { //重复登陆 Response.Write(“alert(‘您的账号已经登陆!

❹ ASP.NET几种清除页面缓存的方法

在asp.net中使用模式dialog时,你会发现每次打开的页面都是相同的内容,页面内容并没有刷新,这是缓存的原因造成的,
解决方法如下:
第一种是ASP.NET清除页面缓存
Response.Buffer
=
true;
Response.ExpiresAbsolute
=
System.DateTime.Now.AddSeconds(-1);
Response.Expires
=
0;
Response.CacheControl
=
"no-cache";
Response.AddHeader("Pragma",
"No-Cache");
第二种是HTML方法
最后一种是在在页面中禁用缓存
在web开发中合理使用缓存可以有效的提高网站的性能,但是在某些场合下因为缓存的存在会带来很多的问题。
例如:因为缓存的存在会造成重复提交数据的问题,验证码图片不能正确显示的问题
,等等。这个时候我们就要禁用页面缓存的功能。
我们常用的做法是发送一个no-cache的指令,但是实际使用过程中我们发现,这个指令对IE是有效的,但是对Firefox却没有效,这是因为,使用该指令Firefox不缓存HTTPS
pages
但是还是会缓存HTTP
pages
,这是Firefox的一个BUG,解决的办法很简单,就是使用no-store代替no-cache,同时发送no-store和no-cache指令
ASP.net中的处理方法,在不需要缓存的页面中添加如下代码

❺ 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缓存常见的4种方式有哪些

1、分布式缓存Memcached

2、内存缓存,此占用服务器资源
3、XML缓存,这种最为常见

4、DATATABLE缓存

❼ asp.net怎么设置浏览器客户端缓存

1. Expires:+过期时间

表示在指定时间后浏览器缓存失效,需要注意的是这儿的过期时间必须是HTTP格式的日期时间,其他的都会被解析成当前时间“之前”,缓存会马上过期,HTTP的日期时间必须是格林威治时间(GMT),而不是本地时间。举例:

❽ asp.net c# 设置一个缓冲区, 数据储存在硬盘

如果客户端的存储的话支持楼上的用cookies,但是cookie可能不支持和被禁用。如果存在服务器上的话可以用缓存,建议使用序列化传输数据,更快。

你要想是存储在客户端的硬盘上那是不用想了。试想一下,如果浏览器就可以直接访问你机器的硬盘了,那你电脑上的数据还有什么安全可言?都可以通过浏览器操作你的数据了。

存在服务器上的话你就直接用StreamReader和StreamWriter操作文件就行了。但是估计你也得考虑读取和存储的速度问题吧,好像还没有数据库来得快。

❾ .net带有参数的页面怎么进行缓存,缓存后可浏览正确页面

可以先打开“工具”-”internet选项“,找高级选项里重置ie设置;
不行就重新安装ie浏览器,重装ie浏览器也无法正常浏览网页的时候,建议换其它浏览器上网(如谷歌、火狐等品牌浏览器)

❿ asp.net如何将经常访问的数据库表放入缓存中

如果单是为减小数据库压力建议采用页片断缓存,即缓存页面中部分内容(与数据相关的)。

可以采用Cache类、Session对象和Application对象(后两者很常见,就不多说了)。
而Cache类是提供数据缓存的类,三者类似。

例如要经常读取数据库中一个的内容(销售记录等等)可将其存放一个dataset
首先从数据库读取并填充到一个名为DS的Dateset里(....这个不是楼主的问题就不讨论了)
直接Cache("ds")=DS,则实现了将DataSet“存”到Cache("ds")里。
调用则是
首先定义一个新的Dateset 如 DS1
DS1=Cache("ds")即可

热点内容
androidappwidget 发布:2024-11-16 23:27:18 浏览:676
图片加密上传 发布:2024-11-16 23:24:54 浏览:71
骗软件算法 发布:2024-11-16 23:21:50 浏览:646
20人团队解压拓展怎么玩 发布:2024-11-16 23:03:34 浏览:159
rsa解密算法c 发布:2024-11-16 22:41:43 浏览:27
python3log 发布:2024-11-16 22:41:34 浏览:658
手机如何热点密码是多少 发布:2024-11-16 22:41:31 浏览:350
android上传多个文件 发布:2024-11-16 22:36:24 浏览:313
苹果微信25区怎么改为安卓区 发布:2024-11-16 22:32:39 浏览:651
数控编程轻松 发布:2024-11-16 22:23:38 浏览:814