Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每天运行一次代码_Javascript_Loops - Fatal编程技术网

Javascript 每天运行一次代码

Javascript 每天运行一次代码,javascript,loops,Javascript,Loops,我只是想知道是否有可能有一个javascript for循环,每天只在循环中迭代一次,即当日期更改时 for(i=0; i < myArray.length; i++){ alert(myArray[i]); } for(i=0;i

我只是想知道是否有可能有一个javascript for循环,每天只在循环中迭代一次,即当日期更改时

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, "/");