当前位置:首页 > JavaScript

js实现分钟计时

2026-01-30 13:59:52JavaScript

使用JavaScript实现分钟计时

方法一:使用setInterval实现基础计时器

let minutes = 0;
const timerElement = document.getElementById('timer');

const timer = setInterval(() => {
    minutes++;
    timerElement.textContent = `${minutes} 分钟`;
}, 60000);

停止计时器:

js实现分钟计时

clearInterval(timer);

方法二:使用Date对象实现精确计时

let startTime = new Date();
const timerElement = document.getElementById('timer');

function updateTimer() {
    const currentTime = new Date();
    const elapsedMilliseconds = currentTime - startTime;
    const elapsedMinutes = Math.floor(elapsedMilliseconds / 60000);
    timerElement.textContent = `${elapsedMinutes} 分钟`;
}

const timer = setInterval(updateTimer, 1000);

方法三:使用requestAnimationFrame实现高性能计时

let startTime = performance.now();
const timerElement = document.getElementById('timer');

function updateTimer(timestamp) {
    const elapsedMilliseconds = timestamp - startTime;
    const elapsedMinutes = Math.floor(elapsedMilliseconds / 60000);
    timerElement.textContent = `${elapsedMinutes} 分钟`;
    requestAnimationFrame(updateTimer);
}

requestAnimationFrame(updateTimer);

方法四:面向对象实现计时器类

class MinuteTimer {
    constructor() {
        this.minutes = 0;
        this.timer = null;
    }

    start(callback) {
        this.timer = setInterval(() => {
            this.minutes++;
            callback(this.minutes);
        }, 60000);
    }

    stop() {
        clearInterval(this.timer);
    }
}

// 使用示例
const myTimer = new MinuteTimer();
myTimer.start((minutes) => {
    document.getElementById('timer').textContent = `${minutes} 分钟`;
});

方法五:使用async/await实现计时器

async function startTimer(durationInMinutes) {
    for (let i = 1; i <= durationInMinutes; i++) {
        await new Promise(resolve => setTimeout(resolve, 60000));
        document.getElementById('timer').textContent = `${i} 分钟`;
    }
}

startTimer(60); // 计时60分钟

注意事项

  • 浏览器标签处于非活动状态时,setInterval和setTimeout可能会被节流
  • 长时间运行的计时器应考虑使用Web Worker避免主线程阻塞
  • 对于需要暂停/恢复功能的计时器,需要额外记录已过去的时间

标签: js
分享给朋友:

相关文章

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…

js实现点击隐藏

js实现点击隐藏

使用CSS类切换实现点击隐藏 通过添加或移除CSS类来控制元素的显示与隐藏。定义一个隐藏样式类如.hidden { display: none; },通过事件监听切换该类。 document.que…