关于Cache的问题

pbmlly 2009-06-08 02:38:18
我做了两个页面:
A,读取D盘上的一个TXT文件,显示在Label上面.
B,空页面.
A上有个连接,连到B上.
____________________________________________________________________________________________________________

A页面的PageLoad写了下面的代码,控制缓存失效时间.

Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);

____________________________________________________________________________________________________________

测试过程:
我先打开A页面,显示了TXT得内容"123",然后打开D盘上面的TXT文件,将内容改为"123123",
接着点击A上面的连接到B,等待一分钟后,从B页面按Back返回,A页面上显示的竟然还是"123"!!!!!!.

...全文
96 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbmlly 2009-06-11
  • 打赏
  • 举报
回复
分给你们了...问题尚未解决...
pbmlly 2009-06-09
  • 打赏
  • 举报
回复
我设置了过期时间,不需要刷新了~
glboy12 2009-06-09
  • 打赏
  • 举报
回复
做个缓存依赖就解决了

private static CacheDependency mydepen;

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

//创建XML数据源

DataSet myds = new DataSet();

//数据源来自文件data.xml

myds.ReadXml(this.MapPath(Request.ApplicationPath + @"/data.xml"));

//判断是否存在缓存

if (Cache["BOOKS"] == null)

{

//创建缓存依赖

mydepen = new CacheDependency(this.MapPath(Request.ApplicationPath

+ @"/data.xml"));

//添加缓存项

Cache.Add("BOOKS", myds, mydepen, DateTime.Now.AddSeconds(10), TimeSpan.Zero,

CacheItemPriority.Normal, null);

}

}

}
pbmlly 2009-06-09
  • 打赏
  • 举报
回复
没有人会吗?急死我了!!!
qtlhn 2009-06-08
  • 打赏
  • 举报
回复
要加个刷新.
windstore 2009-06-08
  • 打赏
  • 举报
回复
不好意思,纠正下我的错误,我刚才测试了下,按返回时,会重新加载前一个页面。。 你的那个会不会是缓存策略的问题。。
windstore 2009-06-08
  • 打赏
  • 举报
回复
IE上的返回是浏览器的伎俩,并没有重新向服务器端请求数据,你可以刷新下看~
pbmlly 2009-06-08
  • 打赏
  • 举报
回复
TO 4楼的兄弟:
我是按IE上面的Back键回退的,如果有缓存的话,不会走PageLoad,如果没有缓存或者缓存过期的话,只要是走PageLoad,就可以读到TXT的内容的啊,修改的内容就应该显示了~~~~
wszhoho 2009-06-08
  • 打赏
  • 举报
回复
每次页面加载的时候你都会把cache的超时时间设置成了现在时间加上1分钟,显然这样无论如何也不会超时.
pbmlly 2009-06-08
  • 打赏
  • 举报
回复
2楼的兄弟,放到!IsPostBack里也没用啊.
crazyleo814 2009-06-08
  • 打赏
  • 举报
回复
加上

if(!isPostback)
{
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
}

试试
JasonZhou 2009-06-08
  • 打赏
  • 举报
回复
刷新后呢?

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧