当前位置:首页 > JavaScript

js实现定时

2026-04-05 10:16:06JavaScript

使用 setTimeout 实现单次定时

setTimeout 用于在指定延迟后执行一次函数,延迟单位为毫秒。语法如下:

setTimeout(() => {
  console.log('执行一次');
}, 1000); // 1秒后执行

清除单次定时使用 clearTimeout:

const timer = setTimeout(() => {}, 1000);
clearTimeout(timer); // 取消未执行的定时

使用 setInterval 实现循环定时

setInterval 会以固定间隔重复执行函数,间隔单位为毫秒:

js实现定时

setInterval(() => {
  console.log('每隔1秒执行');
}, 1000);

清除循环定时使用 clearInterval:

const interval = setInterval(() => {}, 1000);
clearInterval(interval); // 停止定时循环

使用 requestAnimationFrame 实现动画定时

适用于需要与屏幕刷新率同步的动画场景(通常60fps):

js实现定时

function animate() {
  console.log('动画帧执行');
  requestAnimationFrame(animate);
}
requestAnimationFrame(animate);

停止动画循环需保存返回值:

let animationId;
function animate() {
  animationId = requestAnimationFrame(animate);
}
animationId = requestAnimationFrame(animate);
cancelAnimationFrame(animationId);

使用 async/await 实现可暂停定时

通过 Promise 封装实现可控延迟:

function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function run() {
  await delay(1000);
  console.log('1秒后执行');
}

使用 AbortController 控制定时(现代浏览器)

结合 AbortSignal 实现更精细的控制:

const controller = new AbortController();

setTimeout(() => {
  console.log('可中止的定时');
}, 1000, { signal: controller.signal });

controller.abort(); // 中止尚未执行的定时

注意事项

定时器的时间参数是最小延迟,实际执行时间可能因主线程繁忙而延后 循环定时器需确保每次执行时间不超过间隔周期,否则会导致执行堆积 页面不可见时(如切换标签页),浏览器可能会降低定时器频率以节省资源

标签: js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现pdf在线预览

js实现pdf在线预览

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

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…