CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

关于去掉浏览器缓存的问题,请高手指教!

楼主safematch(中中)2006-03-20 08:56:30 在 .NET技术 / ASP.NET 提问

上周提了这个问题,好多朋友也给出了解决的办法,自己也从以前的帖子里搜出类似的方法,一一试过以后,页面还是我行我素的没有刷新,气得我好悬没背过气去!!!  
  这里把大家说过的方法列举出来,请高手们再给看看,还有没有什么可能的原因,为什么我的页面就是不刷新呢?  
  zhtflhs(哼哼):IsPostBack判断页面是否是第一次加载(我用它判断,值就没变过,一直是False)  
  net_lover(孟子E章):Response.Redirect("segqy.aspx?login="   +   strlogin   +"&"   +   System.Guid.NewGuid().ToString())  
  effun(一风):Response.Cache.SetNoStore();  
  gngnandgngn(仗义执言):地址后面加个随机数,避免缓存就行了  
  nicholascheung(我要的幸福):在html   <head>之间   放上<META   HTTP-EQUIV="pragma"   CONTENT="no-cache"><META   HTTP-EQUIV="Cache-Control"   CONTENT="no-cache,   must-revalidate"><META   HTTP-EQUIV="expires"   CONTENT="0"></head>  
  Tom_Real()   :Response.Expires   =   -1  
  ghchen():   Response.Redirect("segqy.aspx?login="   +   strlogin,true)  
  hedane(有球必应):Response.Cache.SetCacheability(HttpCacheability.NoCache)  
  大概就这么多了吧,我都用上也没起作用,不知道哪块儿还做的不对,请大家帮帮忙,万分感谢!  
  问题点数:100、回复次数:41Top

1 楼bingbingcha(不思不归,不孟不E,原来是头大灰狼)回复于 2006-03-20 09:22:22 得分 10

Response.Redirect("segqy.aspx?login="   +   strlogin   +"&"   +   System.Guid.NewGuid().ToString())  
   
  这个好的啊..缓存是根据你的URL来做的..比如你的页面a.aspx?id=1和a.aspx?id=2,当你访问完毕,在IE的temp目录中你会发现有两个页面~~而非一个单一的a.aspx~~  
   
  所以,使用Response.Redirect("segqy.aspx?login="   +   strlogin   +"&"   +   System.Guid.NewGuid().ToString())这个页面跳转,变换参数,是可行的.Top

2 楼safematch(中中)回复于 2006-03-20 09:22:57 得分 0

我在Page_Load里加了这么一句  
  If   IsPostBack   Then  
        Label1.Text   =   "tttt"  
  Else  
        Label1.Text   =   "ffff"  
  End   If  
  前进后退了好几次,始终显示的都是"ffff",到底是为什么啊!!!!!!Top

3 楼cncxz(c: (虫虫)回复于 2006-03-20 09:27:38 得分 10

刷新!=PostBack  
   
  你不要前进或者后退  
   
  在页面中添加一个按钮     点一下   就回产生PostBack  
   
  这个时候   就显示tttt了Top

4 楼time_is_life(今夜太冷:http://timeislife.blog.sohu.com)回复于 2006-03-20 09:47:41 得分 10

page.Response.Buffer   =   false;  
  page.Response.Cache.SetNoStore();Top

5 楼time_is_life(今夜太冷:http://timeislife.blog.sohu.com)回复于 2006-03-20 09:50:44 得分 0

Response.Buffer   =   false;  
  Response.Cache.SetNoStore();Top

6 楼scjtswj()回复于 2006-03-20 09:54:53 得分 0

Response.Expires   =   0;  
  这个行不行?Top

7 楼lzt7((分头诗人)http://www.lzt7.com)回复于 2006-03-20 09:56:38 得分 0

page.Response.Buffer   =   false;  
  page.Response.Cache.SetNoStore();  
  Top

8 楼ye_zi(行到水穷处·坐看云起时)回复于 2006-03-20 10:38:48 得分 10

cncxz(虫虫)   (   )   信誉:121     2006-03-20   09:27:00     得分:   0      
     
     
        刷新!=PostBack  
   
  你不要前进或者后退  
   
  在页面中添加一个按钮     点一下   就回产生PostBack  
   
  这个时候   就显示tttt了  
       
     
  =================  
  同意Top

9 楼safematch(中中)回复于 2006-03-20 14:55:55 得分 0

page.Response.Buffer   =   false;  
  page.Response.Cache.SetNoStore();  
  也不行,而且页面打开变得特别慢!Top

10 楼whispers(快意人生)回复于 2006-03-20 15:12:34 得分 10

<%@   OutputCache   Duration="1"   VaryByParam="none"   %>  
  Top

11 楼winner2050(找工作中,各位XD收到风,M一下。)回复于 2006-03-20 15:20:25 得分 10

Page_Load里加  
  Response.Expires   =   0;    
  Response.CacheControl   =   "no-cache";    
   
  网页里加<Meta   http-equiv="Pragma"   Content="No-cach">  
   
  还有IE里用默认设置,不要选择“不检查”,这个是拨号时代才用的“高速上网”的方法Top

12 楼safematch(中中)回复于 2006-03-20 15:37:31 得分 0

可能大家没有仔细看我写的帖子,好多方法我已经用过了,whispers(快意人生)说的<%@   OutputCache   Duration="1"   VaryByParam="none"   %>倒是没用过,不过应该加在哪呢,也是在<head>里吗,还是<body>里Top

13 楼smile9961(good life)回复于 2006-03-20 15:49:30 得分 10

點瀏覽器的"後退"按鈕看到的是歷史記錄,這個時候是不會刷新的;  
  如果你希望達到刷新頁面的效果,就需要重新請求頁面:  
   
  Randomize()  
  Response.Redirect("xx.aspx?temp="   +   Rnd())  
   
  REM   以前寫asp時常用這種方法,.Net中沒用過,應該頁也可以的.Top

14 楼smile9961(good life)回复于 2006-03-20 15:50:46 得分 0

<%@   page   ....%>  
  <%@   OutputCache   Duration="1"   VaryByParam="none"   %>Top

15 楼safematch(中中)回复于 2006-03-20 16:25:32 得分 0

又一次受到打击,<%@   OutputCache   Duration="1"   VaryByParam="none"   %>也不行  
  会不会有别的什么情况啊!为什么都试过了就是不刷新呢?Top

16 楼whispers(快意人生)回复于 2006-03-20 17:05:58 得分 0

新建一项目  
  <%@   OutputCache   Duration="1"   VaryByParam="none"   %>  
  Page_Load()  
  Label1.Text   =   "Page   Loaded   at:"   +   DateTime.Now.ToLocalTime();  
   
  如果上述代码执行没问题得话   说明你程序写得有问题Top

17 楼safematch(中中)回复于 2006-03-20 17:19:21 得分 0

显示Page   Loaded   at:2006-3-21   1:16:26  
  不是当前的日期时间啊,这样对吗?  
  Top

18 楼whispers(快意人生)回复于 2006-03-20 17:23:15 得分 0

你刷新啊   看看时间还有变化,有就是对得Top

19 楼dreamasp(网络游客)回复于 2006-03-20 17:31:05 得分 0

System.DateTime   today=DateTime.Now;  
  Response.Redirect("temp.aspx?dd="+today)Top

20 楼safematch(中中)回复于 2006-03-20 17:31:41 得分 0

确实有变化,可是我的程序如果按F5也可以刷新,用Response.Redirect就不行了,如果不是缓存的问题还有可能是什么呢?Top

21 楼net_lover(【孟子E章】)回复于 2006-03-21 07:53:59 得分 10

说了这么多,你究竟要实现什么目的?将你的代码贴出来,不是不管用,说你理解错误和代码有问题Top

22 楼safematch(中中)回复于 2006-03-21 08:04:58 得分 0

是这样的,现在不能自己刷新的页面有一个表,我想删除其中一条数据,打开了另一个页面,删除后返回到原来的页,这是被删除的数据还是显示出来了,但我用F5刷新一下,被删的数据就没有了  
  我还是不明白程序有什么错,或者说哪里理解错了,众位哥哥,帮忙啊Top

23 楼safematch(中中)回复于 2006-03-21 08:38:26 得分 0

应该说删除返回时page_load根本就没有执行,这是什么原因Top

24 楼MonkWang(象写情书一样写程序)回复于 2006-03-21 08:46:15 得分 0

帮顶  
  学习Top

25 楼pbwf(书生)回复于 2006-03-21 09:20:31 得分 0

好好看下孟子老大的回复.多试一下.自己还没作过类似的东东.不过应该不难.Top

26 楼safematch(中中)回复于 2006-03-21 09:39:26 得分 0

我都试了N回了,孟老大怎么说了一句就走了啊,  
  刚才又看一下,page_load根本就没有执行,到底怎么回事啊啊啊啊啊啊啊啊啊啊啊啊啊啊Top

27 楼scjtswj()回复于 2006-03-21 09:44:04 得分 10

在page_load里加Response.Expires   =   0;  
  再用Response.Redirect返回到这个页面不行吗?  
  Top

28 楼bookshop(我是比儿(http://www.crossgo.com))回复于 2006-03-21 09:45:07 得分 0

孟老大的我验证过了Top

29 楼safematch(中中)回复于 2006-03-21 10:02:18 得分 0

前面大家说的方法应该都对,可是我的程序用Response.Redirect返回到这个页面时就没执行page_load,大家看看还有别的可能吗?Top

30 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2006-03-21 11:22:09 得分 10

你是A页面跳转到B页面再跳回到A页面?  
   
  在QueryString里面加随机数是一定可以的。Top

31 楼safematch(中中)回复于 2006-03-21 13:16:48 得分 0

回Ivony()就是A页面跳转到B页面再跳回到A页面,我用过孟老大的方法Response.Redirect("segqy.aspx?login="   +   strlogin   +"&"   +   System.Guid.NewGuid().ToString())  
  一样不行  
  之所以把这么多方法列出来,不是想让大家再找更新的方法,而是告诉大家我已经试过了很多停止浏览器缓存的方法,都没起作用,请大家帮忙分析一下别的原因,还有没有什么可能Top

32 楼net_lover(【孟子E章】)回复于 2006-03-21 13:21:45 得分 0

打开了另一个页面,删除后返回到原来的页,这是被删除的数据还是显示出来了  
   
  将你打开页面的方法,怎么执行的删除,怎么显示数据的3出代码贴出来Top

33 楼safematch(中中)回复于 2006-03-21 13:46:53 得分 0

打开删除页:  
  Private   Sub   lbtnDel1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   lbtnDel1.Click  
                  Dim   nowid1   As   String  
                  nowid1   =   Session("nowid1")  
                  Response.Redirect("del.aspx?nowid="   +   nowid1)  
  End   Sub  
   
  删除操作:  
  Private   Sub   btnDel_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   btnDel.Click  
   
                  Dim   sqlStr   As   String  
                  Dim   ocRev   As   System.Data.Odbc.OdbcConnection   =   New   System.Data.Odbc.OdbcConnection  
                  Dim   odaRev   As   System.Data.Odbc.OdbcDataAdapter  
                  Dim   dsRev   As   New   System.Data.DataSet  
                  Dim   objBuilder   As   System.Data.odbc.OdbcCommandBuilder  
                                 
                  '初始化ocReader、odaReader  
                  ocRev.ConnectionString   =   "MaxBufferSize=2048;FIL=MS   Access;DSN=booking;PageTimeout=5;DBQ=d:\tsg\tsjg\Data\booking.mdb;DriverId=25"  
                  sqlStr   =   "Select   *   From   bkinfo   Where   ID   =   "   &   Request.QueryString("nowid")   &   "     "  
   
                  odaRev   =   New   System.Data.Odbc.OdbcDataAdapter(sqlStr,   ocRev)  
                  objBuilder   =   New   System.Data.odbc.OdbcCommandBuilder(odaRev)  
                  odaRev.UpdateCommand   =   objBuilder.GetUpdateCommand()  
   
                  ocRev.Open()  
                  odaRev.Fill(dsRev)  
   
                  dsRev.Tables(0).Rows(0).Delete()  
                  odaRev.Update(dsRev)  
                  strlogin   =   "suc"  
                  Response.Redirect("segqy.aspx?login="   +   strlogin)  
                          End   Sub  
  Top

34 楼safematch(中中)回复于 2006-03-21 13:54:06 得分 0

segqy.aspx的page_load:  
  Private   Sub   Page_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                  '在此处放置初始化页的用户代码  
   
                  '设置不缓存页面  
                  Dim   strlog   As   String  
                    Response.Cache.SetCacheability(HttpCacheability.NoCache)  
                  'Response.Cache.SetExpires(DateTime.Now.AddSeconds(1))  
                  'Response.Cache.SetNoServerCaching()  
                  'Response.Cache.SetValidUntilExpires(False)  
                  Response.Expires   =   0  
                  Response.Cache.SetNoStore()  
                  Response.AppendHeader("Pragma",   "no-cache")  
                  'Response.Expires   =   -1  
                  'Response.Buffer   =   False  
                  'Response.Cache.SetNoStore()  
  以上都是试验去掉缓存的  
   
                  strlog   =   Request.QueryString("login")  
   
                  If   strlog   =   "suc"   Then  
   
                          lbtnRev1.Visible   =   True  
                          lbtnRev1.Enabled   =   True  
   
                          lbtnRev2.Visible   =   True  
                          lbtnRev2.Enabled   =   True  
   
                          lbtnRev3.Visible   =   True  
                          lbtnRev3.Enabled   =   True  
   
                          lbtnRev4.Visible   =   True  
                          lbtnRev4.Enabled   =   True  
   
                          lbtnRev5.Visible   =   True  
                          lbtnRev5.Enabled   =   True  
   
                          lbtnDel1.Visible   =   True  
                          lbtnDel1.Enabled   =   True  
   
                          lbtnDel2.Visible   =   True  
                          lbtnDel2.Enabled   =   True  
   
                          lbtnDel3.Visible   =   True  
                          lbtnDel3.Enabled   =   True  
   
                          lbtnDel4.Visible   =   True  
                          lbtnDel4.Enabled   =   True  
   
                          lbtnDel5.Visible   =   True  
                          lbtnDel5.Enabled   =   True  
   
                  Else  
   
                          lbtnRev1.Visible   =   False  
                          lbtnRev1.Enabled   =   False  
   
                          lbtnRev2.Visible   =   False  
                          lbtnRev2.Enabled   =   False  
   
                          lbtnRev3.Visible   =   False  
                          lbtnRev3.Enabled   =   False  
   
                          lbtnRev4.Visible   =   False  
                          lbtnRev4.Enabled   =   False  
   
                          lbtnRev5.Visible   =   False  
                          lbtnRev5.Enabled   =   False  
   
                          lbtnDel1.Visible   =   False  
                          lbtnDel1.Enabled   =   False  
   
                          lbtnDel2.Visible   =   False  
                          lbtnDel2.Enabled   =   False  
   
                          lbtnDel3.Visible   =   False  
                          lbtnDel3.Enabled   =   False  
   
                          lbtnDel4.Visible   =   False  
                          lbtnDel4.Enabled   =   False  
   
                          lbtnDel5.Visible   =   False  
                          lbtnDel5.Enabled   =   False  
   
                  End   If  
   
                  'strdel   =   Request.QueryString("del")  
   
                  '定义临时分页表  
                  dsSegqy.Clear()  
                  'dsSegqy.Tables(0).Clear()  
   
                  ocSegqy.Open()  
                  odaSegqy.Fill(dsSegqy,   "bkinfo")                                                 '填充数据集  
   
                  pagesize   =   5                                                                                         '设定每页记录为5  
                  Session("redcount")   =   dsSegqy.bkinfo.Rows.Count                   '计算总记录数  
                  Session("pagecount")   =   Int((Session("redcount")   -   3)   /   pagesize   +   1)                               '计算总页数  
                  lbCount.Text   =   "共"   +   dsSegqy.bkinfo.Rows.Count.ToString   +   "条记录,"   +   Session("pagecount").ToString   +   "页"         '用lbPagecount显示记录数、页数  
                  Application("dtTe")   =   dsSegqy.Tables("bkinfo")  
                  lbA.Text   =   ""  
                  lbB.Text   =   ""  
                  lbtnPageup1.Enabled   =   True  
                  lbtnPagedown1.Enabled   =   True  
                  lbtnPageup2.Enabled   =   True  
                  lbtnPagedown2.Enabled   =   True  
   
                  If   IsPostBack   =   False   Then  
                          'Label1.Text   =   "ffff"  
   
                          Session("nowrecord")   =   1  
   
                          pageload(Session("nowrecord"),   Application("dtTe"))  
   
                  Else  
                          pageload(Session("nowrecord"),   Application("dtTe"))  
                          'Label1.Text   =   "tttt"  
                  End   If  
   
                  ocSegqy.Close()  
   
          End   Sub  
  pageload是我自己定义的函数,用来往表格里填数据Top

35 楼net_lover(【孟子E章】)回复于 2006-03-21 14:29:49 得分 0

试试  
   
  <%@   Page   EnableViewState   =   "True"   SmartNavigation   =   "False"%>  
   
  Response.ExpiresAbsolute   =   DateTime.Now.AddDays(-1)  
  Response.Expires   =   -1000  
  Response.AppendHeader("Pragma",   "no-cache")  
  Response.AppendHeader("Cache-Control",   "no-cache,   must-revalidate")  
   
   
  Response.Redirect("segqy.aspx?login="   +   strlogin   +"&"   +   System.Guid.NewGuid().ToString())  
  Top

36 楼safematch(中中)回复于 2006-03-21 16:33:00 得分 0

老大,不好意思,刚才开会了,回来看到您的回复赶紧就试,还是不行啊Top

37 楼Tom_Real()回复于 2006-03-21 17:02:46 得分 0

If   strlog   =   "suc"   Then  
  VB里是用"="表示"=="的吗?Top

38 楼windy_224(边Cheng浪子)回复于 2006-03-21 17:14:46 得分 0

关注中……Top

39 楼safematch(中中)回复于 2006-03-21 17:23:24 得分 0

新发现,新发现!!!!  
  我设置断点调试的时候页面可以正常刷新,但没有断点直接运行就不行了,这是怎么回事啊!!Top

40 楼safematch(中中)回复于 2006-03-22 09:13:40 得分 0

孟老大呢,快来看啊Top

41 楼nameone(过客)回复于 2006-03-22 10:27:44 得分 0

Response.Buffer   =   false;  
  Response.Cache.SetNoStore();  
  Top

相关问题

  • 请问怎样去掉oicq自带的浏览器?
  • 浏览器的缓存问题
  • 请问怎样才能去掉浏览器控件的滚动条?(急,在线)
  • 如何去掉浏览器的界面
  • 请问:各位高手,怎么用代码把浏览器的工具栏去掉,谢谢
  • 请问:各位高手,怎么用代码把浏览器的工具栏去掉,谢谢
  • 我现在想把ie浏览器的菜单去掉,请问有什么方法?
  • 我的浏览器老是自动弹出网页“同城分类”,请问该怎么去掉?
  • 在servlet 中如何禁止浏览器缓存某一页面?
  • 怎样取消浏览器对页面的缓存?

关键词

  • 页面
  • 代码
  • 执行
  • 数据
  • nowid
  • 删除
  • 刷新
  • 缓存
  • 孟老大
  • redirect

得分解答快速导航

  • 帖主:safematch
  • bingbingcha
  • cncxz
  • time_is_life
  • ye_zi
  • whispers
  • winner2050
  • smile9961
  • net_lover
  • scjtswj
  • Ivony

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo