浏览器返回刷新页面

在某些场景下,我们需要浏览器返回时不使用缓存,而是从服务器重新获取数据。通过设置HTML元标签、HTTP响应头以及JavaScript,可以实现页面不被缓存。然而,即使设置了这些,浏览器默认的返回操作可能仍不会触发刷新。文中提出使用JavaScript的window.name属性作为判断依据,当window.name未定义时,使用location.reload()强制刷新页面,确保每次返回都是从服务器获取最新数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

1. 设置页面为不缓存,访问上一次页面就需要重新去服务器获取。
HTML
<pre>  
    <META HTTP-EQUIV="pragma" CONTENT="no-cache">  
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">  
    <META HTTP-EQUIV="expires" CONTENT="0">  
</pre>  
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");  
}  
PHP
header("Cache-Control: no-store, no-cache, must-revalidate");  
header("Cache-Control: post-check=0, pre-check=0", false);  
header("Pragma: no-cache"); 
ASP
Response.Buffer = True   
Response.ExpiresAbsolute = Now() - 1   
Response.Expires = 0   
Response.CacheControl = "no-cache"   
Response.AddHeader "Pragma", "No-Cache"  
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来判断页面是否已经刷新过.









评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值