关于去掉浏览器缓存的问题,请高手指教!
上周提了这个问题,好多朋友也给出了解决的办法,自己也从以前的帖子里搜出类似的方法,一一试过以后,页面还是我行我素的没有刷新,气得我好悬没背过气去!!!
这里把大家说过的方法列举出来,请高手们再给看看,还有没有什么可能的原因,为什么我的页面就是不刷新呢?
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




