当前位置:首页 > JavaScript

js实现定时执行

2026-03-15 21:24:29JavaScript

使用 setTimeout 实现单次延迟执行

setTimeout(() => {
  // 需要执行的代码
  console.log('延迟执行');
}, 1000); // 1000毫秒后执行

使用 setInterval 实现循环定时执行

const intervalId = setInterval(() => {
  // 需要循环执行的代码
  console.log('每隔1秒执行一次');
}, 1000);

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

使用 requestAnimationFrame 实现高性能动画定时

function animate() {
  // 动画逻辑代码
  console.log('动画帧执行');

  // 循环调用
  requestAnimationFrame(animate);
}

// 启动动画
requestAnimationFrame(animate);

使用 Promise 和 async/await 实现定时控制

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

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

  await delay(2000);
  console.log('再2秒后执行');
}

timedExecution();

使用 Web Worker 实现后台定时任务

worker.js:

let timer;
self.onmessage = function(e) {
  if (e.data === 'start') {
    timer = setInterval(() => {
      self.postMessage('tick');
    }, 1000);
  } else if (e.data === 'stop') {
    clearInterval(timer);
  }
};

主线程:

js实现定时执行

const worker = new Worker('worker.js');
worker.onmessage = (e) => {
  if (e.data === 'tick') {
    console.log('Worker定时消息');
  }
};

// 启动Worker定时器
worker.postMessage('start');

// 停止Worker定时器
// worker.postMessage('stop');

使用 Date 对象实现精确计时

function preciseTimer(callback, interval) {
  let expected = Date.now() + interval;

  function tick() {
    const drift = Date.now() - expected;
    callback();

    expected += interval;
    setTimeout(tick, Math.max(0, interval - drift));
  }

  setTimeout(tick, interval);
}

preciseTimer(() => {
  console.log('精确计时执行');
}, 1000);

标签: js
分享给朋友:

相关文章

js实现全选

js实现全选

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

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js 实现滚动

js 实现滚动

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

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

vue.js实现拍照

vue.js实现拍照

Vue.js 实现拍照功能 在 Vue.js 中实现拍照功能通常需要结合浏览器的媒体 API(如 getUserMedia)和 Canvas 元素。以下是实现步骤: 准备工作 确保项目已安装 Vue…

vue.js 实现弹窗

vue.js 实现弹窗

Vue.js 实现弹窗的方法 使用组件化方式创建弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏。组件内包含弹窗的模板、样式和逻辑。 <t…