当前位置:首页 > JavaScript

js实现分钟计时

2026-01-30 13:59:52JavaScript

js实现分钟计时

js实现分钟计时

使用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实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…