现在位置首页 / 开源代码 /正文

asp.net网站的缓存清空及IE浏览器设置

作者: IT小兵 | 2013年6月29日| 热度:℃ | 评论: |参与:

最近的项目使用了很多缓存/session,在多帐号登录时,出现数据错乱的情况。(说错乱还轻了)。

有以下办法可以清空:

在ASP.NET中,要使页面每次访问都必须从服务器端重新加载,而不是从IE缓存中直接读取上次的暂存页,只需在Page_Load事件中添加如下代码 :


protected void Page_Load(object sender, EventArgs e)
   {
       Response.Buffer = true;
       Response.ExpiresAbsolute = DateTime.Now.AddMinutes(-1);
       Response.Expires = 0;
       Response.CacheControl = "no-cache";
   }

一般情况下,WEB页面都会在Internet临时文件夹中有一个临时文件.
我在操作IE时会出现这种情况:
假如说有一个页面Page1.aspx,在我第一次访问后,它会在我的Internet临时文件夹里有一个Page1.aspx文件生成.之后,如果我改了Page1.aspx的数据后再次访问该页面,发现IE并没有对这个Page1.aspx的数据进行更新,反而打开的是我第一次访问的页面.为什么会这样,是因为IE自动(默认)调用了Internet临时文件夹里有一个Page1.aspx文件,而不是重新下载新的Page1.aspx.
怎样能让IE自动重新下载新的Page1.aspx呢?
一种方法是对Internet选项进行设置.
Internet选项-->常规-->Internet临时文件中"设置"-->每次访问此页时检查.
这种设置时最好同时删除临时文件.
这种方法是让客户自己设置自己的浏览器,如果客户忘记了设置,那么,新的页面总是下载不到本地.这时,客户会怎样认为呢?("肯定是程序的错!"其实也不是程序的错,但是用程序完全可以解决这个问题)
第二种方法:用程序自己来让页面自动下载.
这种方法实际上是让页面不保存到Internet临时文件夹中,每次访问页面都会让浏览器下载页面.
只要在aspx.cs代码的Page_Load事件中加上

Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);

即可.

不防你试试.在不加这句时,你打开页面,Internet临时文件夹里会有一个页面文件,而加了


服务端缓存分两种:

1.使用页面缓存和片段缓存

<%@ OutputCache Duration="5" VaryByParam="None"%> //success
<%@ OutputCache Duration=60 VaryByParam=”TextBox1,TextBox2” %>
说明: Duration是设置Cache的过期时间;
VarByParam是设置是否根据参数而变化,None时所有参数使用同一Cache, 设置TextBox1时则根据TextBox1的不同值分别缓存;当有多个参数时则要组 合缓存;
2.关闭Session
方法一:
<%@ Page EnableSessionsstate="false" %>
<%@ Page EnableSessionsstate="readonly" %>

方法二:
  ASP.NET Sessionss可以在Web.config或Machine.config中的 Sessionsstate元素中配置。下面是在 Web.config中的设置的例子:

<Sessionsstate timeout="10" cookieless="false" mode="Inproc" />    


点击阅读本文所属分类的更多文章: 开源代码 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询