You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化网页数字时钟脚本加载速度?解决首次显示延迟问题

解决数字时钟页面加载延迟显示的问题

你的问题根源在于setInterval的执行机制:它会在指定的延迟时间后第一次执行回调函数,所以页面加载完成后要等1秒才会显示时间。解决方法很简单,把时间更新的逻辑单独抽出来,先立即执行一次,再设置定时重复执行。

优化后的代码

const add_zero = (number) => {
    return number < 10 ? `0${number}` : number;
}

// 抽离单独的时间更新函数
const updateCurrentTime = () => {
    const today = new Date();
    const month = today.getMonth() + 1;
    const year = today.getFullYear();
    const date = today.getDate();

    const hours = add_zero(today.getHours());
    const minutes = add_zero(today.getMinutes());

    const current_date = `${date}/${month}/${year} ${hours}:${minutes} |`;
    
    document.getElementById("show_current_time").innerHTML = current_date;
}

const show_current_time = () => {
    // 立即执行一次,页面加载后立刻显示时间
    updateCurrentTime();
    // 之后每秒更新一次
    setInterval(updateCurrentTime, 1000);
}

window.onload = show_current_time;

额外优化建议

  • 如果你的DOM元素show_current_time在页面中固定存在,可以提前获取元素引用,避免每次更新都调用getElementById,提升一点性能:
    // 在全局或函数开头获取元素
    const timeElement = document.getElementById("show_current_time");
    
    const updateCurrentTime = () => {
        // ... 其他逻辑不变
        timeElement.innerHTML = current_date;
    }
    
  • 若需要更精确的分钟更新(避免定时器累积误差导致的跳变延迟),可以计算当前时间到下一分钟的剩余毫秒数,动态设置定时器间隔,但对于普通数字时钟来说,基础优化已经足够。

内容的提问来源于stack exchange,提问作者user19610615

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 15:48:22