当前位置:首页 > 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);

停止计时器:

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实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在H…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整…