Dict.CN 在线词典, 英语学习, 在线翻译

ASP中关于添加了新记录然后在另一个页面中显示不出新添加的记录的原因

最近在做一个ASP项目,忽然遇到一个怪问题,当我在某个页面添加了新记录以后,在其显示记录页面中却始终显示不出新添加的记录,一定要刷新才可以看到,一开始还以为是Cookies的问题,但是把Cookies删除了,依然出现这个问题,于是到网上查了相关记录 查了好久 终于看到曾经也有个人发贴问这样的问题
原帖如下:


向大家请教,我在一个ASP文件A提交表单到另一ASP文件B,任务是往ACCESS增加一条记录,完成后response.redirect  "a.asp".这个ASP文件就负责读取数据库的记录出来并显示.  
现在每次增加记录都是成功的,但返回文件A时却不能显示,必须重进一次(相当于刷新吧?)才能显示.  
百思不得其解之下,向大家请教,谢谢!  
---------------------------------------------------------------  
 
你不用response.redirect    
改用:  response.write"<script  language=javascript>window.location.href='a.asp'</script>"  
---------------------------------------------------------------  
如果还不行的话,后面再加个参数.window.location.href='a.asp?temp=.123456789"  
---------------------------------------------------------------  
response.redirect  只是服务器里的页面跳转,跳转的目的网页可以是服务器缓存里的页面(如果有的话),这是ASP的一种加速访问的方法,但恰是这个方法造成了目的页面是缓存页面的后果。  
response.write"<script  language=javascript>window.location.href='a.asp'</script>"  
这个写法是传递给客户端一个页面跳转的动作语句,由客户端向服务器端发出一个页面跳转的请求,这个请求与你在浏览器里键入新地址所发出的请求是一样的。这种请求启到了服务器的应答,也从而迫使服务器重新运行该ASP网页,当然这结果是看到了新添加的内容了。  
 
当然BrightEye(问个不休)  的那种给ASP网页传入一个随机参数的做法也是避免服务器的缓存网页,因为该网页接收到了一个不同的参数,即认为是重新读取而不是用缓存页了。CSDN也就是采用了这种方法,你看每个问题打开之后,地址栏里都有一个temp=.234567(随机数),随机数一般是不大会重复的,这样即可保证每次打开ASP网页所传入的参数都不相同从页达到目的。



看了之后忽然恍然大悟,于是我把跳转页面的语句该成window.location="xxx.asp"  问题终于解决,释然,虽然只是小问题,但是解决之后还是觉得挺开心的,所以马上到这里来发了这篇文章,如果有遇到类似问题的朋友,希望能够帮助到你们。

posted on 2006-09-06 14:42  小光_520  阅读(842)  评论(1编辑  收藏  举报