Javascript 如何在不按用户刷新页面的情况下每整小时更新一次变量?
控制器:Javascript 如何在不按用户刷新页面的情况下每整小时更新一次变量?,javascript,php,jquery,Javascript,Php,Jquery,控制器: $number = rand(1, 100); 视图: 您的幸运号码:。 如何在不手动刷新页面的情况下每小时更新$number的值?我可以使用JavaScript/jQuery中的setInterval,但我希望在整小时(0:00、1:00、2:00等)使用它。最好的方法是什么?我可以使用PHP、CRON、JS和JS框架…试着找出现在是几点,计算到下一个整小时还有多长时间,然后等待那么长时间: function doSomething() { var d = new Da
$number = rand(1, 100);
视图:
您的幸运号码:。
如何在不手动刷新页面的情况下每小时更新
$number
的值?我可以使用JavaScript/jQuery中的setInterval
,但我希望在整小时(0:00、1:00、2:00等)使用它。最好的方法是什么?我可以使用PHP、CRON、JS和JS框架…试着找出现在是几点,计算到下一个整小时还有多长时间,然后等待那么长时间:
function doSomething() {
var d = new Date(),
h = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours() + 1, 0, 0, 0),
e = h - d;
if (e > 100) { // some arbitrary time period
window.setTimeout(doSomething, e);
}
// your code(May be an ajax call to show lucky num)
}
检查e<100只是为了确保不要在5毫秒之类的时间上设置超时,让它变成一个疯狂的循环。试着找出现在是几点,计算到下一个整小时的时间,然后等待那么长时间:
function doSomething() {
var d = new Date(),
h = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours() + 1, 0, 0, 0),
e = h - d;
if (e > 100) { // some arbitrary time period
window.setTimeout(doSomething, e);
}
// your code(May be an ajax call to show lucky num)
}
检查e<100只是为了确保不要在5毫秒之类的时间上设置超时,并使其成为一个疯狂的循环。这里有一个解决方案
var d=新日期();
var firstTrigger=60000*(60-d.getMinutes());
//这是第一次触发
setTimeout(函数(){
日志(“第一次触发”,rand(1100));
//这是每整小时连续触发一次
setInterval(函数(){
log(“每小时连续触发”,rand(1100));
}, 3600000);
},第一触发器)代码>给你一个解决方案
var d=新日期();
var firstTrigger=60000*(60-d.getMinutes());
//这是第一次触发
setTimeout(函数(){
日志(“第一次触发”,rand(1100));
//这是每整小时连续触发一次
setInterval(函数(){
log(“每小时连续触发”,rand(1100));
}, 3600000);
},第一触发器)代码>你想使用Ajax,我知道,但如何在全天工作时更改它?我不想在整小时内启动我的应用程序来启动setInterval。我只是好奇,这需要用于哪个用例?JavaScript不可能精确计时。你能做的最好的事情就是为每分钟(或更少)设置一个时间间隔,并检查你是否达到了小时标记。如果你想使用Ajax,我知道如何在整小时内改变它?我不想在整小时内启动我的应用程序来启动setInterval。我只是好奇,这需要用于哪个用例?JavaScript不可能精确计时。你能做的最好的事情就是为每分钟(或更少)设定一个时间间隔,并检查你是否达到了小时标记