当前位置:首页 > JavaScript

js 实现计时器

2026-01-30 15:34:18JavaScript

使用 setInterval 实现计时器

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

js 实现计时器

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

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

使用 setTimeout 实现单次延迟

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

js 实现计时器

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

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…