我将如何处理每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" >
答案 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)
}
}
希望这会有所帮助。