gpt4 book ai didi

javascript - 循环 javascript 计时器忽略网页刷新

转载 作者:行者123 更新时间:2023-11-28 09:01:52 25 4
gpt4 key购买 nike

显然在这方面没有经验 - 到目前为止我基本上都是拼凑代码。

我有一个演示网站供潜在客户访问 - 他们可以登录仪表板,基本上搞乱一切,一个小时后,一个 cron 作业将恢复存储在服务器其他位置的数据库转储。

我遇到了这段代码,认为显示 60-0 计时器会很有用且考虑周全,让访问者知道网站“重置”之前需要多长时间。然后它从 60 开始。但是,当浏览器刷新时,计数器也会刷新。我用 CSS 设计了它的样式,因此它有一个信息丰富的标签,整个代码块都进入网站仪表板的 HTML 小部件中。

我认为这可能不够复杂,无法处理浏览器刷新。有什么建议吗?

<style type="text/css">
#notice {font-size:150%; float:left; padding-right:10px;}
#time {font-size:150%;}
</style>

<script type="text/javascript">

var m=60; /*this value may be edited to suit your requirements*/

var s=0;
var temp=m-1;

window.onload=function() {
tenMinutes();
}
function tenMinutes(){
s--;
if(s<0) {
s=59;
m--;
}
if(m==-1) {
m=temp;
}
if(m<10) {
mins='0'+m;
}
else {
mins=m;
}
if(s<10) {
secs='0'+s;
}
else {
secs=s;
}
document.getElementById('time').firstChild.nodeValue=mins+':'+secs;
cd=setTimeout('tenMinutes()',1000);
}
</script>
<div style="width:300px;">
<div id="notice">This Website will reset in:</div>
<div id="time">60:00</div></div>

最佳答案

由于您(显然)控制了 cron 作业,并假设它每整个小时执行一次,因此您可以使用 JavaScript 来计算 time difference between now and the next hour .

当然,就分钟/秒而言,这依赖于服务器和访问者的时钟同步。请记住,有些时区有半小时偏移等。

如果您希望更准确,则需要一些服务器端逻辑来存储下次重置的时间/日期。

您可以在应用程序代码中的某个位置执行此操作,也可以仅使用 cronjob 将时间信息以合适的格式写入文件中。

关于javascript - 循环 javascript 计时器忽略网页刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17639899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com