当浏览器通过“后退”按钮返回历史页面时,一般浏览器都会保留缓存,哪怕是设置了页面不保留,有时候也是没效果的,所有,想了一个办法,通过刷新页面,达到清空缓存的效果。
下面是主要代码:
window.onload = function(){
var url = window.location.href;
var ps = url.split("#");
try{
if(ps[1] != 1){
url += "#1";
}else{
window.location = ps[0];
}
}catch(ex){
url += "#1";
}
window.location.replace(url);
};
var url = window.location.href;
通过这句获取当前页面的url:
如果是第一次访问: http://demo.com/test.html?id=1
var ps = url.split("#");
try{
if(ps[1] != 1){
url += "#1";
}else{
window.location = ps[0];
}
}catch(ex){
url += "#1";
}
这段是在url中查找是否存在“#”,如果没有,会进入异常块,为url加上“#1”,此时url变成了:http://demo.com/test.html?id=1#1
window.location.replace(url);
这句是将新的url替换到地址栏,浏览器不会去重新请求。
如此一来,当浏览器通过“后退”按钮,浏览历史页面时,此时的url是:http://demo.com/test.html?id=1#1,因为能检测到#1,所以用window.location = http://demo.com/test.html?id=1, 重新请求该页面。