浏览器返回并刷新页面重新获取数据

Js+JQuery helloweb 次浏览 已收录 评论() 扫描二维码
扫描二维码

有的时候浏览器的返回操作我们想:刷新页面,从服务器重新获取数据,此时就需要浏览器不将浏览记录保存在缓存中。

解决思路:设置页面为不缓存,访问上一次页面就需要重新去服务器获取。

1. Html 对 元数据声明

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta http-equiv="expires" content="0"/>

2. Java

if (request.getProtocol().compareTo("HTTP/1.0") == 0){
    response.setHeader("Pragma","no-cache");  
}else if (request.getProtocol().compareTo("HTTP/1.1") == 0){
    response.setHeader("Cache-Control","no-cache");  
}

3. Php

header("Cache-Control: no-store, no-cache, must-revalidate");  
header("Cache-Control: post-check=0, pre-check=0", false);  
header("Pragma: no-cache");

4. Asp

Response.Buffer = True   
Response.ExpiresAbsolute = Now() - 1   
Response.Expires = 0   
Response.CacheControl = "no-cache"   
Response.AddHeader "Pragma", "No-Cache"

5. Jsp

<% 
   response.setHeader("Pragma","no-cache"); 
   response.setHeader("Cache-Control","no-cache"); 
   response.setDateHeader("Expires", 0); 
   response.setHeader("Cache-Control", "no-store"); 
%>

实践发现,如果只是按照上面的做,当使用浏览器上默认的返回时并不能让浏览器刷新,还需要使用 js 控制;

if(window.name!="hasLoad"){
    location.reload();
    window.name = "hasLoad";
}else{
    window.name="";
}

由于 window.name 在浏览器刷新后会仍然保存,所以可以用 window.name 来判断页面是否已经刷新过。

原文链接:HelloWeb前端网 » 浏览器返回并刷新页面重新获取数据 » 感谢您的浏览,希望能有所帮助。

欢迎您加入“Helloweb” 学习交流群:HelloWeb-学习交流群 196291215 共同交流并结识同行,在这里说出您的收获与感想或有什么不同的观点,我们期待您的留言,分享,让我们一起进步!

喜欢 ()or分享