$(document).ready(function () {
if(location.href.indexOf("#reloaded")==-1){
location.href=location.href+"#reloaded";
location.reload();
}
})//在这后面可以加入程序的其他代码
有时js效果不能正常显示,有可能是html加载数据过多,导致某些数据无法显示,需要刷新才能显示。 有的浏览器第一次加载不会动画 刷新当前页面一次 可以不加的。
法一:
function reurl(){ url = location.href; var times = url.split("?t="); if(times[1] != 1){ url += "?t=1"; self.location.replace(url); } } window.onload = function() { setTimeout("reurl()", 100);//0.1秒后刷新 }
法二:
function reurl(){ url = location.href;var times = url.split("?"); if(times[1] != 1){url += "?1"; self.location.replace(url);} } reurl ;
让页面进行刷新,可以使用location.reload()方法,但是这种方法会让页面一直不断的刷新,这是因为当页面加载完成以后,我们让它刷新一次,那么浏览器就会重新向服务器请求数据,
界面会重新加载,然后,加载完成又调用了location.reload()方法,这样就陷入了死循环,一直处于请求然后刷新的状态。
为了解决这样的问题,我们使用下面这种方式:
$(document).ready(function () {
//第一次进入页面刷新一次,仅一次
//location.href.indexOf("#")获取当前页面地址并在其中查找"#"首次出现位置,找不到就是-1
if(location.href.indexOf("#")==-1){
//在当前页面地址加入"#",使下次不再进入此判断
location.href=location.href+"#";
location.reload();
}
利用以上方法,在每次进入这个页面的时候,都会绕过浏览器缓存,重新向服务器获取数据。
function reurl(){
url = location.href; //把当前页面的地址赋给变量 url
var times = url.split("?"); //分切变量 url 分隔符号为 "?"
if(times[1] != 1){ //如果?后的值不等于1表示没有刷新
url += "?1"; //把变量 url 的值加入 ?1
self.location.replace(url); //刷新页面
}
}
reurl();//执行这个函数
String.prototype.queryString= function(name) {
var reg=new RegExp("[\?\&]" + name+ "=([^\&]+)","i"),r = this.match(reg);
return r!==null?unescape(r[1]):null;
};
window.onload=function(){
var last=location.href.queryString("_v");
document.body.innerHTML+=last||"";
if(location.href.indexOf("?")==-1){
location.href=location.href+"?_v="+(new Date().getTime());
}else{
var now=new Date().getTime();
if(!last){
location.href=location.href+"&_v="+(new Date().getTime());
}else if(parseInt(last)<(now-1000)){
location.href=location.href.replace("_v="+last,"_v="+(new Date().getTime()));
}
}
};
以上方法分别来自
- https://blog.csdn.net/weixin_40612082/article/details/81114654
- https://blog.csdn.net/qq_39178473/article/details/86226020
- https://www.cnblogs.com/qzj-it/p/10479332.html