特定于自动刷新页面

时间:2018-06-27 21:35:44

标签: javascript html

我将如何处理每3小时45分钟刷新一次的Java或HTML自动刷新代码?不像每个用户喜欢的,即使它的用户在页面上只有10分钟(如果自上次刷新以来已经过3小时45分钟),它也仍然会刷新,因此像3小时45分钟一样服务器时间不是用户时间(如果有意义)例如12:45 am 3:45 am 6:45 am 9:45 am 12:45 pm 3:45 Pm ... soo on soo on希望这对您有所帮助,谢谢大家!

我尝试了以下操作,但是这超出了用户时间

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

2 个答案:

答案 0 :(得分:1)

您可以使用纯JavaScript来实现。

<script type="text/javascript">
setTimeout(function(){
    //You can change this value based on the server location.
    var offset = -5;
    var now = new Date();
    var utc = now.getTime() + (now.getTimezoneOffset() * 60000);
    var serverTime = new Date(utc + (3600000*offset));
    var hours = serverTime.getHours();
    var minutes = serverTime.getMinutes();
    if((hours % 3 == 0) && (minutes % 45 == 0)){
        location.reload();
    }
}, 30000);
</script>

您可以在页面中包含此脚本,它将每三个小时重新加载一次。 setTimeout设置为每30000ms或每30秒调用一次。

编辑: 添加了用于处理多个服务器时区的偏移值。 您可以参考this link以获得确切的值。

感谢@ChrisForrence的建议。

答案 1 :(得分:0)

您的代码将根据服务器时间刷新网页。

要解决此问题,您需要使用计时器并使用javascript添加功能,并基于此功能可以在访问页面时启动计时器,并且在每个常规间隔后可以刷新。

将此URl用于示例代码段:http://www.javascriptkit.com/script/script2/autofresh.shtml

var limit="****" // time like "225:00" minutes
    function beginrefresh(){
        if (parselimit==1)
            window.location.reload()
        else{ 
            parselimit-=1
            curmin=Math.floor(parselimit/60)
            cursec=parselimit%60
            if (curmin!=0)
                curtime=curmin+" minutes and "+cursec+" seconds left until page refresh!"
            else
                curtime=cursec+" seconds left until page refresh!"
            document.title = doctitle + ' (' + curtime +')'
            setTimeout("beginrefresh()",1000)
        }
    }

希望这会有所帮助。