当前位置:首页 > JavaScript

js实现定时执行

2026-02-02 21:01:58JavaScript

定时执行的方法

使用 setTimeout

setTimeout 用于在指定的毫秒数后执行一次函数。语法如下:

setTimeout(function, delay, [arg1], [arg2], ...);

示例代码:

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

使用 setInterval

setInterval 用于每隔指定的毫秒数重复执行函数。语法如下:

setInterval(function, delay, [arg1], [arg2], ...);

示例代码:

const intervalId = setInterval(() => {
    console.log('重复执行');
}, 1000); // 每1秒执行一次

// 清除定时器
clearInterval(intervalId);

使用 requestAnimationFrame

requestAnimationFrame 适合动画或高频次定时任务,会在浏览器下一次重绘之前执行。语法如下:

requestAnimationFrame(callback);

示例代码:

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

使用 Promise 和 async/await

结合 Promiseasync/await 实现更灵活的定时控制。示例代码:

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

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

使用 Web Workers

对于长时间运行的定时任务,可以使用 Web Workers 避免阻塞主线程。示例代码:

js实现定时执行

// worker.js
self.onmessage = function(e) {
    setInterval(() => {
        self.postMessage('定时执行');
    }, 1000);
};

// 主线程
const worker = new Worker('worker.js');
worker.onmessage = function(e) {
    console.log(e.data);
};

注意事项

  • setTimeoutsetInterval 的延迟时间不保证精确,受浏览器事件循环影响。
  • 高频次任务使用 requestAnimationFrame 更流畅。
  • 长时间任务建议使用 Web Workers 避免页面卡顿。
  • 清除定时器使用 clearTimeoutclearInterval 防止内存泄漏。

标签: js
分享给朋友:

相关文章

js实现验证码

js实现验证码

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

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…