【问题标题】:Auto Refresh page specific自动刷新页面特定
【发布时间】:2018-12-06 21:06:24
【问题描述】:

如何使用 Java 或 HTML 编写每 3 小时 45 分钟刷新一次的自动刷新代码?不像每个用户,即使它的用户在页面上只停留了 10 分钟,如果自上次刷新以来已经 3 小时 45 分钟,它无论如何都会刷新,所以像 3 小时 45 分钟服务器时间不是用户时间,如果这有意义的话比如上午 12:45 上午 3:45 上午 6:45 上午 9:45 下午 12:45 下午 3:45... Soo on soo on 希望这是有道理的,谢谢你们的帮助!

我已经尝试了以下方法,但它超出了用户时间

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

【问题讨论】:

  • 我建议设置 websocketsserver-sent 事件。
  • 我正在使用 cpanel 的共享主机,如果可以的话,我真的需要一个 javascript
  • 这是按用户时间而不是服务器时间计算的,不是吗?就像如果用户只在那里 10 分钟,它不会刷新,直到他们在页面上 3 小时 35 分钟。我想的时间
  • 3 小时 45 分钟的要求有多灵活?如果是 3 小时的刷新周期,您可以检查每分钟是 12:00 AM/PM、3:00 AM/PM、6:00 AM/PM 还是 9:00 AM/PM。或者如果是 4 小时的刷新周期,您可以简单地检查每分钟的 12:00 AM/PM、4:00 AM/PM 或 8:00 AM/PM

标签: javascript html


【解决方案1】:

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

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

使用此 URL 获取示例代码 sn-p :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)
        }
    }

希望这会有所帮助。

【讨论】:

  • 请在投票前发表评论。这显然是该问题的合法答案。
  • 好吧,看起来提问者希望页面同时为所有用户刷新。此代码将为每个用户在不同的时间刷新。
  • 是的,我希望它同时为所有用户刷新
【解决方案2】:

您可以在纯 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 设置为每 30000 毫秒或每 30 秒调用一次。

编辑: 添加了用于处理多个服务器时区的偏移值。 具体数值可以参考this link

感谢@ChrisForrence 的建议。

【讨论】:

  • @Raghuram Kasyap 在测试了这个后不起作用.. 你每 3 小时的代码只适用于实际上在 -5 时区的某些人,其他人都不会刷新
  • 我知道你不能使用聊天室。我上传了一个有效的sample on codepen
猜你喜欢
  • 1970-01-01
  • 2020-12-22
  • 2012-07-21
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-22
  • 1970-01-01
相关资源
最近更新 更多