当前位置:首页 > JavaScript

js实现定时

2026-04-05 10:16:06JavaScript

使用 setTimeout 实现单次定时

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

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

清除单次定时使用 clearTimeout:

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

使用 setInterval 实现循环定时

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

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

清除循环定时使用 clearInterval:

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

使用 requestAnimationFrame 实现动画定时

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

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 实现更精细的控制:

js实现定时

const controller = new AbortController();

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

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

注意事项

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

标签: js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

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

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js实现图表

js实现图表

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