当前位置:首页 > JavaScript

js 实现计时器

2026-01-30 15:34:18JavaScript

使用 setInterval 实现计时器

通过 setInterval 可以创建一个重复执行的计时器,适合需要持续更新的场景(如倒计时、秒表)。

let seconds = 0;
const timer = setInterval(() => {
  seconds++;
  console.log(`已运行: ${seconds}秒`);
}, 1000);

// 停止计时器(例如10秒后停止)
setTimeout(() => {
  clearInterval(timer);
  console.log("计时器停止");
}, 10000);

使用 setTimeout 实现单次延迟

setTimeout 适用于单次延迟执行任务,可通过递归调用实现循环计时。

let count = 0;
function runTimer() {
  count++;
  console.log(`第 ${count} 次触发`);
  if (count < 5) {
    setTimeout(runTimer, 1000);
  }
}
runTimer();

高性能计时器(requestAnimationFrame

适合动画或需要与屏幕刷新率同步的场景,精度更高。

let startTime = performance.now();
function updateTimer(currentTime) {
  const elapsed = (currentTime - startTime) / 1000;
  console.log(`运行时间: ${elapsed.toFixed(2)}秒`);
  requestAnimationFrame(updateTimer);
}
requestAnimationFrame(updateTimer);

倒计时实现

结合 Date 对象计算剩余时间,适用于精确倒计时场景。

const endTime = new Date().getTime() + 10000; // 10秒后结束
function countdown() {
  const now = new Date().getTime();
  const remaining = Math.max(0, endTime - now);
  console.log(`剩余: ${(remaining / 1000).toFixed(1)}秒`);
  if (remaining > 0) {
    setTimeout(countdown, 100);
  }
}
countdown();

注意事项

  • 清除计时器:务必在不需要时调用 clearIntervalclearTimeout,避免内存泄漏。
  • 误差修正setInterval 可能因事件循环产生延迟,可通过动态调整下次执行时间补偿。
  • 页面隐藏时暂停:使用 visibilitychange 事件优化后台运行的计时器。
document.addEventListener('visibilitychange', () => {
  if (document.hidden) {
    clearInterval(timer);
  } else {
    timer = setInterval(updateFunc, 1000);
  }
});

js 实现计时器

标签: 计时器js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback)…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-contain…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统…