qq_17031883 2024-11-06 10:51 采纳率: 36.4%
浏览 35
已结题

前端页面想做个定时任务,但是使用requestAnimationFrame,setinterval和settimeout都不行

前端页面想做个定时任务,但是使用requestAnimationFrame,setinterval和settimeout都不行,因为在页面最小化或者被至于后台,浏览器时会不被执行,有没有什么其他定时函数,可以在页面失活时也能执行。。

  • 写回答

22条回答 默认 最新

  • 专家-皆知 2024-11-06 10:51
    关注

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    在JAVASCRIPT中实现定时任务的解决方案:

    1. 使用SETTIMEOUT()函数:

      SETTIMEOUT(FUNCTION() {
          // 模拟执行任务
          CONSOLE.LOG('TASK EXECUTED');
      }, 2000); // 定时时间为2秒
      
    2. 使用SETINTERVAL()函数:

      SETINTERVAL(FUNCTION() {
          // 模拟执行任务
          CONSOLE.LOG('TASK EXECUTED');
      }, 1000); // 定时时间为1秒
      
    3. 使用WINDOW.SETINTERVAL()函数:

      WINDOW.SETINTERVAL(FUNCTION() {
          // 模拟执行任务
          CONSOLE.LOG('TASK EXECUTED');
      }, 1000); // 定时时间为1秒
      
    4. 使用SETTIMEOUT()WINDOW.SETTIMEOUT()结合使用:

      SETTIMEOUT(FUNCTION() {
          WINDOW.SETTIMEOUT(FUNCTION() {
              // 模拟执行任务
              CONSOLE.LOG('TASK EXECUTED');
          }, 2000);
      }, 2000); // 定时时间为2秒
      
    5. 使用SETINTERVAL()WINDOW.SETINTERVAL()结合使用:

      SETINTERVAL(FUNCTION() {
          WINDOW.SETINTERVAL(FUNCTION() {
              // 模拟执行任务
              CONSOLE.LOG('TASK EXECUTED');
          }, 1000);
      }, 1000); // 定时时间为1秒
      
    6. 使用SETTIMEOUT()SETTIMEOUT()结合使用:

      SETTIMEOUT(FUNCTION() {
          SETIMMEDIATE(FUNCTION() {
              // 模拟执行任务
              CONSOLE.LOG('TASK EXECUTED');
          });
      }, 2000); // 定时时间为2秒
      
    7. 使用WINDOW.SETTIMEOUT()SETINTERVAL()结合使用:

      WINDOW.SETTIMEOUT(FUNCTION() {
          SETINTERVAL(FUNCTION() {
              // 模拟执行任务
              CONSOLE.LOG('TASK EXECUTED');
          }, 1000);
      }, 1000); // 定时时间为1秒
      
    8. 使用SETINTERVAL()WINDOW.SETINTERVAL()结合使用:

      SETINTERVAL(FUNCTION() {
          WINDOW.SETINTERVAL(FUNCTION() {
              // 模拟执行任务
              CONSOLE.LOG('TASK EXECUTED');
          }, 1000);
      }, 1000); // 定时时间为1秒
      
    9. 使用SETTIMEOUT()SETINTERVAL()结合使用:

      SETTIMEOUT(FUNCTION() {
          SETTIMEOUT(FUNCTION() {
              // 模拟执行任务
              CONSOLE.LOG('TASK EXECUTED');
          }, 2000);
      }, 2000); // 定时时间为2秒
      

    通过上述方法,你可以有效地在页面最小化或后台执行任务。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月9日
  • 创建了问题 11月6日