当前位置:首页 > 技术 > 正文内容

打开页面后自动刷新一次以加载内容

Lavfun2年前 (2022-04-16)技术529

我只是搬运工,下列内容转载于网络:


打开后延时1秒刷新页面一次:

<SCRIPT LANGUAGE="JavaScript"> 
function refresh(){
    window.location.reload();
    setTimeout(refresh, 1000);   
}
</SCRIPT>


加载时刷新页面一次:

<SCRIPT LANGUAGE="JavaScript"> 
function refresh() 
{ 
location.reload();
}
//var t1 = window.setTimeout(refresh,1000);
var t2 = window.setTimeout("refresh()",1000);//使用字符串执行方法
window.clearTimeout(t2);//去掉定时器
</SCRIPT>


只刷新一次:

<body onload="location.replace()">


我的网页的图片较多,而服务器也不是很好,所以每次打开网页后总有一、两幅图片无法显示,但刷新一遍后又全部可显示了,这种问题相信每个人都遇到过,接下来介绍详细解决方法


<script> 
function window.onload(){ 
if(location.href.indexOf('#reloaded')==-1){ 
location.href=location.href+"#reloaded" 
location.reload() 
} 
} 
</script> 
<iframe src="/"></iframe>





我的网页的图片较多,而服务器也不是很好,所以每次打开网页后总有一、两幅图片无法显示,但刷新一遍后又全部可显示了。


不想让浏览网页的人每次都点“刷新”按钮,请问如何在网页中加入一些代码,让网页在打开后又自动刷新一次?




把下面代码加在<head> </head>之间

<meta http-equiv=refresh content=5 >




三种方法:

1.
<script>
 
function refreshPage(the_duration) 
{ 
setTimeout("self.location.reload();",the_duration*1000); 
} 
self.onload=function(){ 
refreshPage(1);//里面的1代表1秒,未刷新的间隔时间,你可以改成你想要的 
}; 
</script>


2.

<body onload='setTimeout("location.reload()",1000)'>

3.

<meta http-equiv="refresh" content=几秒>

只刷新一次:

<body onload="location.replace()">

重复刷新:

<body onload="location.reload()">




来晚了,楼上兄说的对




楼上这样的方法是每隔5秒钟就要刷新一次,对服务器的压力很大,如果在大量的请求连接以及服务器不是很好的情况下很可能变成服务器的当机。

所以比较好的办法是在用Javascript来实现。在装载完了以后刷新一下,只要用如下的代码:

 

<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
function refresh() 
{ 
history.go(0); 
} 
setTimeout("refresh()",1000); 
//--> 
</SCRIPT>


这个是在不管本页面的缓存情况下,向服务器重新请求一次。

setTimeOut 是在1秒钟以后刷新本页面。

把上面的代码放到<head> </head>之间,以1000×n计算n秒以后刷新,替换1000;

试试看吧。




JS刷新当前页面的几种方法总结


1,重装方法,该方法强迫浏览器刷新当前页面。


语法: location.reload([bForceGet]) 参数: bForceGet,可选参数,默认为false,从客户端缓存里取当前页.true,则以GET方式,从服务端取最新的页面,相当于客户端点击F5(“刷新”)


2,替换方法

该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用替代方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL。

语法: location.replace(URL)在实际应用的时候,重新刷新页面的时候,我们通常使用:location.reload()或者是history.go(0)来做。因为这种做法就像是客户端点F5刷新页面,所以页面的method =“post”的时候,会出现“网页过期”的提示。那是因为会话的安全保护机制。可以想到:当调用location.reload()方法的时候,aspx页面此时在服务端内存里已经存在,因此必定是IsPostback的。如果有这种应用:我们需要重新加载该页面,也就是说我们期望页面能够在服务端重新被创建,我们期望是不是IsPostback的。这里, location.replace()就可以完成此任务。被替换的页面每次都在服务端重新生成。你可以这么写:location.replace(location.href);


返回并刷新页面:


location.replace(document.referrer); document.referrer //前一个页面的URL不要用history.go(-1),或history.back();来返回并刷新页面,这两种方法不会刷新页面。


3,使用Javascript刷新页面的几种方法:


  • history.go(0) 

  • location.reload() 

  • location=location 

  • location.assign(location) 

  • document.execCommand('Refresh') 

  • window.navigate(location) 

  • location.replace(location) 

  • document.URL=location.href 


4,自动刷新页面的方法:


1,页面自动刷新:把如下代码加入区域中

<meta http-equiv="refresh" content="20">

 <!-- 其中20指每隔20秒刷新一次页面.-->


2,页面自动跳转:把如下代码加入区域中

<meta http-equiv="refresh" content="20; url="http://baidu.com">

 <!--其中20指隔20秒后跳转到 http://baidu.com 页面-->


3,页面自动刷新JS版:

function myrefresh(){
 window.location.reload();
 }
 setTimeout('myrefresh()',1000); //指定1秒刷新一次


4,JS刷新框架的脚本语句:

// 如何刷新包含该框架的页面用
 parent.location.reload();
 // 子窗口刷新父窗口
 self.opener.location.reload();
 // (或<a href="javascript:opener.location.reload()">刷新</a>)
 // 如何刷新另一个框架的页面用
 parent.另一FrameID.location.reload();


5,如果想关闭窗口时刷新或者想打开窗口时刷新的话,在中调用以下语句即可。

<body onload="opener.location.reload()"> <!--开窗时刷新-->
 <body onUnload="opener.location.reload()"> <!--关闭时刷新-->
 <script language="javascript">
 window.opener.document.location.reload();
 </script>






完全是出于对信息安全的考虑,因为一般都会设置session来控制用户对一些页面的非法访问。但session防止不了浏览器的后退。也就是说你退出登录后,如果不关闭页面,还是有可能泄露信息的。下面是两种方式,当然并不只有两种,而且肯定有更好的方式。(测试主要针对IE6、7、8)


1、关闭旧页,打开新页:


function co(){
    window.open("跳转页url","newwindow");
    window.opener = null;
    window.close();
}

缺点:IE7下会弹出确认关闭网页的提示


2、页面自动刷新一次,这样即使后退了,也看到的是刷新后经过session验证的页面。

有两种方法能做到:


(1)通过url刷新:


function refresh(){
    url = location.href; //把当前页面的地址赋给变量 url
    //分切变量 url 分隔符号为 "#"
    if( url.indexOf("#") == -1){ //如果url后没有#
        url += "#"; //加入 #
        self.location.replace(url); //刷新页面
    }
}

(2)通过cookie刷新:


//自动刷新一次,如果没登录过,新建一个cookie:views 置为1,根据views是否有值判断是否是第一次浏览,如果是第一次就刷新。
function autoRefresh() {
    if (getCookie("views") != 1) {
        document.cookie = "views = 1";
        if (getCookie("view") != 1)
            location.reload()
        else
            refresh();//如果浏览器不允许写cookie 则用url刷新方法,确保万无一失。
    } else{
        delCookie("views");
    }
        
}
function getCookie(name) {
    //获取指定名称的cookie的值
    var arrStr = document.cookie.split("; ");
    for ( var i = 0; i < arrStr.length; i++) {
        var temp = arrStr[i].split("=");
        if (temp[0] == name)
            return unescape(temp[1]);
    }
    return null;
}
 function delCookie(name){
     //为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间 
     var date = new Date();
     date.setTime(date.getTime() - 10000);
     document.cookie = name + "=a; expires=" + date.toGMTString();
 }






只要在页面的开头加上这么一段代码就OK了。嘿嘿


<SCRIPT   LANGUAGE="JavaScript">       
function   fresh()  
{  
if(location.href.indexOf("?reload=true")<0)
   {
    location.href+="?reload=true";  
   }  
}  
setTimeout("fresh()",50)
</SCRIPT>




<script>
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");
    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 - 500)) {
            location.href = location.href.replace("_v=" + last, "_v=" + (new Date().getTime()))
        }
    }
};
</script>


扫描二维码推送至手机访问。

版权声明:本文由 声光视趣 - lavfun.com 发布,如需转载请注明出处。

本文链接:https://www.lavfun.com/technical-forum/35.html

分享给朋友:

相关文章

常用html编辑代码及条目的有序列表和无序列表

红头条目html代码:<section style="padding: 5px 0 5px 10px; outline: 0; display:...

MySQL数据库操作Discuz数据表常用命令记录

门户文章内容快速替换:UPDATE pre_portal_article_content SET content=REPLACE(content,'要替换的旧内容','新内容')...

Discuz手机模版不支持有序列表和无序列表的修改方法

有序列表:条目内容1;条目内容2;条目内容3...无序列表:条目内容1;条目内容2;条目内容3...这两种列表对于文本排版来说非常重要,可以将很多条目列的很清楚,看起来整齐划一,一目了然,本人非常喜欢使用,但很多dz手机模版都不支持,编辑好...

修改Linux服务器密码有效期

修改最小天数:(7天)(注意M大小写)chage -m 7 root修改最大天数:(7天)(注意M大小写)chage -M 7 root修改为永久不过期:chage -M...