Chrome扩展:在Javascript中检测新的一天(改变的一天)?
我知道在新的一天(或小时/分钟)没有事件监听器。但是在我的Chrome扩展中,我需要知道新的一天是什么时候开始的,这意味着我必须使用setInterval函数来找出这一天是什么时候改变的。但是,我不确定使用什么作为间隔值:10秒还是10分钟?我担心会耗尽CPU和内存(常量setInterval调用),但我仍然想知道新的一天几乎一开始。关于什么是处理这个问题的理想方法,你有什么想法吗?根据你想要的精确程度,唯一的方法是设置一个间隔。您可以将精度设置为您想要的任何值。1分钟5分钟10分钟如果您指的是用户的新一天,则可以在加载页面时设置一个超时Chrome扩展:在Javascript中检测新的一天(改变的一天)?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我知道在新的一天(或小时/分钟)没有事件监听器。但是在我的Chrome扩展中,我需要知道新的一天是什么时候开始的,这意味着我必须使用setInterval函数来找出这一天是什么时候改变的。但是,我不确定使用什么作为间隔值:10秒还是10分钟?我担心会耗尽CPU和内存(常量setInterval调用),但我仍然想知道新的一天几乎一开始。关于什么是处理这个问题的理想方法,你有什么想法吗?根据你想要的精确程度,唯一的方法是设置一个间隔。您可以将精度设置为您想要的任何值。1分钟5分钟10分钟如果您指的是
function setnewdaytimer(){
if(window.newdaytimer) clearTimeout(newdaytimer);
var now= new Date,
tomorrow= new Date(now.getFullYear(), now.getMonth(), now.getDate()+1);
window.newdaytimer= setTimeout(newdayalarm, tomorrow-now);
}
function newdayalarm(){
alert((new Date()).toLocaleTimeString());
}
window.onload=setnewdaytimer;
我猜在90%的时间里,新的一天会在第一次脚本运行时被检测到,因为没有多少人会在午夜打开浏览器,所以间隔并不是那么重要。实际上,我刚刚有了一个想法-在第一次脚本运行时,我会计算(基于当前UTC时间)距离新的一天开始还有多少毫秒?每个脚本运行/新的一天都要做同样的事情。出于我的目的,并且由于我的程序将被不同时区的许多人使用,我认为使用设置间隔是一个好主意。