Javascript 每天运行一次代码
我只是想知道是否有可能有一个javascript for循环,每天只在循环中迭代一次,即当日期更改时Javascript 每天运行一次代码,javascript,loops,Javascript,Loops,我只是想知道是否有可能有一个javascript for循环,每天只在循环中迭代一次,即当日期更改时 for(i=0; i < myArray.length; i++){ alert(myArray[i]); } for(i=0;i
for(i=0; i < myArray.length; i++){
alert(myArray[i]);
}
for(i=0;i
因此,在上面的循环中,让它运行,并冻结它或其他东西,直到数据发生变化,然后执行另一次迭代,然后继续这样做。。你知道我的意思
提前谢谢 如果希望以预定义的时间间隔发生某些事情,可以设置超时/时间间隔: 例如:
var dayInMilliseconds = 1000 * 60 * 60 * 24;
setInterval(function() { alert("foo"); },dayInMilliseconds );
编辑:由于您提到代码将在浏览器中运行,因此这假设浏览器至少运行24小时,否则将无法工作。当您没有服务器时,使用是最好的方法,
由于javascript代码可能会重新启动(通过关闭选项卡并重新打开),因此会失去以前的状态
下面的方法更加防弹:
实现这一目标的最佳方法是创建一个持续1天的cookie。。 即使网页或浏览器刷新后关闭,倒计时仍将继续
setcookie($cookie_name, $cookie_value, time() + 86400, "/");
这意味着86400=1天
希望有帮助您的代码是在node.js或其他服务器端环境中运行还是在浏览器中运行?那么
setInterval
是一个不错的选择。@RayToal-它怎么可能是一个不错的选择?每次刷新都会运行多次,而不是一天一次。很好的一点-对于浏览器或任何客户端代理来说,一天确实是一个巨大的间隔。@Tiwaz89-请重新考虑投票,因为选择的答案不太好。这基本上是对的,尽管我认为OP希望它在当地时间午夜运行。如果是这样的话,你应该改为计算毫秒到午夜
@nolegs这真的很好,谢谢nolegs。但正如apsillers所说,我不希望它从执行开始每24小时运行一次。但是我每晚都要在午夜进行更新。你可以在这里看到:这将给你几毫秒的时间直到午夜,但是浏览器显然仍然必须在午夜运行才能正常工作。在底部,你写了runOncePerDay()//每天运行代码
runOncePerDay()//不运行代码
,但它们相同吗?我遗漏了什么?@jmfbot-这只是一个演示,显示该函数每天只能运行一次,因此第二次调用不会发出任何警报,因为在第二次调用中,hasOneDayPassed()
将返回true(直到1天过去)
setcookie($cookie_name, $cookie_value, time() + 86400, "/");