以文本方式查看主题

-  ╋艺 镇╋  (http://zyzsky.com/bbs/index.asp)
--  ┣◇网站建设&Web语言  (http://zyzsky.com/bbs/list.asp?boardid=4)
----  js使用history.go(-2)返回前二页并刷新的问题  (http://zyzsky.com/bbs/dispbbs.asp?boardid=4&id=2115)

--  作者:admin
--  发布时间:2010/8/23 15:25:39
--  js使用history.go(-2)返回前二页并刷新的问题
在上一页文章里记录了js返回上一页,刷新页面的所有方法,但是并没有找到我想要的解决方案,今天又上网搜了下

       history.go()方法就是加载上几页的缓存,如果想要刷新上几页,那就在页面中禁止使用缓存就OK了,这个问题其实不难,但是却是没有弄明白其中的原理,所以才浪费了这么长的时间

       说下的我问题,我是在列表中点击某一条记录在本页面加载另一个页面,并在新加载的页面中进行修改等操作,操作完成之后想再返回列表页(带参数带分页),使用history.go(-2)一直都返回到了列表页,但是不能加载操作后生成的数据

我使用的是PHP,那么在PHP中就使用如下方法来禁用页面缓存    

<?php   
  
//设置此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。   
header("Expires: Mon, 26 Jul 1970 05:00:00 GMT");     
  
//设置此页面的最后更新日期(用格林威治时间表示)为当天,可以强制浏览器获取最新资料    
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");     
  
//告诉客户端浏览器不使用缓存,HTTP 1.1 协议    
header("Cache-Control: no-cache, must-revalidate");     
  
//告诉客户端浏览器不使用缓存,兼容HTTP 1.0 协议    
header("Pragma: no-cache");   
  
?>

这是PHP的办法

那个在html,asp中如何应用呢:

HTML:

<META HTTP-EQUIV="pragma" C>

<META HTTP-EQUIV="Cache-Control" C>

<META HTTP-EQUIV="expires" C>

<META HTTP-EQUIV="expires" C>

 

ASP:

response.expires=0

response.addHeader("pragma","no-cache")

response.addHeader("Cache-Control","no-cache, must-revalidate")



JSP:

response.addHeader("Cache-Control", "no-cache");

response.addHeader("Expires", "Thu, 01 Jan 1970 00:00:01 GMT");

 

 

PS:做了这么多年的开发和网站了,到现在却还是需要靠搜索引擎才能找到像这样的问题的答案,实在是羞愧呀



转自:
http://zhizhuofl.blog.163.com/blog/static/69914779201041742331785/
作者:
Halcyon
--  作者:admin
--  发布时间:2010/8/23 15:28:12
--  
上文中提到的ASP部分禁止缓存的方法,貌似不行
要用下面的:

用ASP自动清空IE缓存里的内容

-

有时候缓存会给程序带来很大的麻烦,这段代码是用来清空IE缓存里的内容

1.禁止客户端缓存要在<head>中加入类似如下内):


<META HTTP-EQUIV="pragma" C>
<META HTTP-EQUIV="Cache-Control" C>
<META HTTP-EQUIV="expires" C>

2.在服务器的动态网页中禁止缓存,要加入类似如下脚本

(1)asp:


<%
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachec
%>


或者
<%
pStr = "private, no-cache, must-revalidate"
Response.ExpiresAbsolute = date()
Response.AddHeader "pragma", "no-cache"
Response.AddHeader "cache-control", pStr
%>

(2)jsp:


response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);


使用以上ASP部分的代码,可以禁止缓存,以此实现在HISTORY.GO(-2)返回前2页的时候数据不是旧的,而是重新加载了
[此贴子已经被作者于2010-8-23 15:29:00编辑过]