每1秒获取一次javascript

每1秒获取一次javascript,javascript,date,setinterval,Javascript,Date,Setinterval,我创建了一个脚本,每1秒执行一次,并以如下方式输出当前的小时、分钟和秒: setInterval(()=>{ 让日期=新日期(); 让时间=`${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`; document.getElementById('foo')。innerText=时间; }, 1000); 时间:00:00:00您只需增加现有日期对象的秒数: let date = new Date(); setInterv

我创建了一个脚本,每1秒执行一次,并以如下方式输出当前的小时、分钟和秒:

setInterval(()=>{
让日期=新日期();
让时间=`${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
document.getElementById('foo')。innerText=时间;
}, 1000);

时间:00:00:00
您只需增加现有
日期
对象的秒数:

let date = new Date();

setInterval(() => {
    date.setSeconds(date.getSeconds() + 1);

    let time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
    document.getElementById('foo').innerText = time;
}, 1000);
但问题是,

  • 这将为您的绩效带来多少实际收益;及
  • 间隔方法的执行时间有多精确,以及计算日期和实际日期之间的偏差有多大。您可能希望重新同步,例如每小时左右

  • 您只需增加现有
    日期
    对象的秒数:

    let date = new Date();
    
    setInterval(() => {
        date.setSeconds(date.getSeconds() + 1);
    
        let time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
        document.getElementById('foo').innerText = time;
    }, 1000);
    
    但问题是,

  • 这将为您的绩效带来多少实际收益;及
  • 间隔方法的执行时间有多精确,以及计算日期和实际日期之间的偏差有多大。您可能希望重新同步,例如每小时左右

  • 别这么想……更好的办法。。。怎样?定义“更好”。为什么要避免创建新的日期对象?我认为。。。这不是问题。出于性能方面的原因,我不明白为什么在发生任何其他事情之前,当你还有1000秒的时间时,你甚至需要尝试缩短一毫秒的时间。这完全不是问题。日期对象非常简单,它们只是一个时间值和一组继承的方法。设置innerHTML可能会占用更多的资源。不要这样认为。更好的方法。。。怎样?定义“更好”。为什么要避免创建新的日期对象?我认为。。。这不是问题。出于性能方面的原因,我不明白为什么在发生任何其他事情之前,当你还有1000秒的时间时,你甚至需要尝试缩短一毫秒的时间。这完全不是问题。日期对象非常简单,它们只是一个时间值和一组继承的方法。设置innerHTML可能会占用更多的资源。除了setInterval没有完全按照指定的时间间隔运行,因此时钟将缓慢漂移。这是否“更好”还有争议。还不清楚为什么将秒设置为新值比创建新日期使用更少的资源。@RobG你不是在重复我在回答的后半部分中所说的一切吗?虽然这是一种替代方法,但没有“更好”的迹象,因此不是真正的答案:-(除了setInterval没有完全按照指定的时间间隔运行,因此时钟将缓慢漂移。这是否“更好”是否设置秒值得商榷。也不清楚为什么将秒设置为一个新值比创建一个新日期使用更少的资源。@RobG你不是在重复我在回答的后半部分中所说的一切吗?虽然这是一个备选方案,但没有“更好”的迹象,因此不是真正的答案:-(