注册 登录
编程论坛 ASP技术论坛

表单修改数据后 页面上显示的还是更新前的数据,刷新后才显示新数据

ykhpli 发布于 2010-05-04 18:34, 774 次点击
修改数据后,数据库里已经更新数据,但是页面上显示的还是更新前的数据,点击修改读入表单也是更新前的数据,只有刷新一次后才显示出新数据。以前都好好的,突然就变成这样了,不知道是哪里设置的问题?
4 回复
#2
cnfarer2010-05-04 19:09
缓存设置吧?
#3
ykhpli2010-05-04 19:13
哪里的缓存设置呢?   在别人的电脑上发布就没有这个问题的。
#4
hams2010-05-05 08:57
禁止缓存的办法

第一种方法、在Asp页面首部<head>加入
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"
第二种方法、在HtML代码中加入
 <HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>
第三种方法、在重新调用原页面的时候在给页面传一个参数
Href="****.asp?random()"
      前两个方法据说有时会失效,而第三种则是在跳转时传一个随机的参数! 因为asp的缓存是与参数相关的,如果参数不同就不会使用缓存,而会重新生成页面,每次都传一个随机的参数就可以避免使用缓存。

第四种方法、
window.location.replace("WebForm1.asp");
       参数就是你要覆盖的页面,replace的原理就是用当前页面替换掉replace参数指定的页面。这样可以防止用户点击back键。使用的是javascript脚本,举例如下:

a.html
<html>
<head>
<title>a</title>
<script language="javascript">
function jump(){
      window.location.replace("b.html");
}
</script>
</head>
<body>
<a href="javascript:jump()">b</a>
</body>
</html>
b.html
<html>
<head>
<title>b</title>
<script language="javascript">
function jump(){
     window.location.replace("a.html");
}
</script>
</head>
<body>
<a href="javascript:jump()">a</a>
</body>
</html>
       前3种只是清空了cache,即存储在Temporary Internet Files文件夹中的临时文件,而第四种则是使用跳转页面文件替换当前页面文件,并没有清空cache,也就是说Temporary Internet Files产生了相关的临时文件,两者搭配使用真是清空缓存,必备良药。
#5
ykhpli2010-05-05 22:22
楼上的前面三种方法都已经试过了。都不行。估计跟网页的设计没关系。
我怀疑跟操作系统,或者iis设置有关系。因为在别的电脑上发布都好好的。
但是不知道是哪里设置的问题。
1