当前位置:首页 > JavaScript

js 实现计时器

2026-03-01 06:38:00JavaScript

js 实现计时器

使用 setTimeout 实现单次计时器

setTimeout(() => {
  console.log('计时结束');
}, 1000); // 1000毫秒后执行

使用 setInterval 实现重复计时器

let counter = 0;
const intervalId = setInterval(() => {
  console.log(`已过去 ${++counter} 秒`);
  if (counter >= 5) {
    clearInterval(intervalId);
  }
}, 1000);

使用 requestAnimationFrame 实现高精度计时器

let startTime = null;
function animate(timestamp) {
  if (!startTime) startTime = timestamp;
  const elapsed = timestamp - startTime;
  console.log(`已过去 ${elapsed.toFixed(2)} 毫秒`);
  if (elapsed < 5000) {
    requestAnimationFrame(animate);
  }
}
requestAnimationFrame(animate);

使用 Date 对象实现精确计时

const start = new Date();
setInterval(() => {
  const now = new Date();
  const elapsed = now - start;
  console.log(`精确计时: ${elapsed} 毫秒`);
}, 100);

倒计时实现

let timeLeft = 10;
const countdown = setInterval(() => {
  console.log(`剩余: ${timeLeft--} 秒`);
  if (timeLeft < 0) {
    clearInterval(countdown);
    console.log('倒计时结束');
  }
}, 1000);

性能优化的计时器实现

let lastTime = performance.now();
let fps = 0;
function update() {
  const now = performance.now();
  fps = 1000 / (now - lastTime);
  lastTime = now;
  console.log(`当前FPS: ${fps.toFixed(2)}`);
  requestAnimationFrame(update);
}
requestAnimationFrame(update);

暂停和恢复计时器

let timer;
let remaining = 5000;
let start;

function startTimer() {
  start = Date.now();
  timer = setTimeout(() => {
    console.log('计时完成');
  }, remaining);
}

function pauseTimer() {
  clearTimeout(timer);
  remaining -= Date.now() - start;
}

// 调用 startTimer() 开始
// 调用 pauseTimer() 暂停

Web Worker 后台计时器

worker.js:

js 实现计时器

let startTime = Date.now();
setInterval(() => {
  postMessage(Date.now() - startTime);
}, 1000);

主线程:

const worker = new Worker('worker.js');
worker.onmessage = (e) => {
  console.log(`后台计时: ${e.data} 毫秒`);
};

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

相关文章

js实现验证码

js实现验证码

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

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js怎么实现异步

js怎么实现异步

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

js 实现文件上传

js 实现文件上传

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。以下是一个基础示例: <input ty…

js实现点击效果

js实现点击效果

实现点击效果的JavaScript方法 使用addEventListener绑定点击事件 通过document.getElementById或document.querySelector获取DOM元素…

js实现保存图片

js实现保存图片

使用Canvas绘制并保存图片 在HTML中创建一个Canvas元素,通过JavaScript绘制内容后转换为图片并保存。Canvas的toDataURL方法可将画布内容转为Base64编码的图片数据…