zoukankan      html  css  js  c++  java
  • 按照准时准点的15分钟刷新

    要求:按照15分钟刷新但是必须是当前时间为参考:例如现在是33分钟下一次刷新的时间是12分钟 第二次以后就是15分钟

    第一种简单粗暴(定时器每分钟执行)

    var limit = 15
    setInterval(function() {
      var currMinutes = new Date().getMinutes()
      if (currMinutes % limit == 0) {
        /*其他代码*/
      }
    }, 1000 * 60)

    第二种是精确计算间隔

    // 间隔
    var limit = 15
    // 当前分钟
    var currMinutes = new Date().getMinutes()
    // 当前间隔
    var diff = currMinutes == 0 ? limit : (60 - currMinutes) % limit
    
    var startFun = function() {
        // 启动定时器
        var intval = setTimeout(function() {
    
            /*其他代码*/
            console.log('yes')
            if (diff != limit) {
                diff = limit
                clearTimeout(intval)
            }
            startFun()
    
        }, diff * 60 * 1000)
    }
    
    startFun()

    看了第一个写法,在看第二个写法是不是觉得第二个就是一个笑话(傻逼)的写法。我费了半天劲写了第二种写法,突然陈(汉军)老师说了第一个写法,

    我也笑自己傻,真傻

    如果这篇文章对您有帮助,您可以打赏我

    技术交流QQ群:15129679

  • 相关阅读:
    OCP-1Z0-052-V8.02-112题
    OCP-1Z0-052-V8.02-109题
    OCP-1Z0-052-V8.02-41题
    OCP-1Z0-052-V8.02-40题
    OCP-1Z0-053-V12.02-492题
    基于MysqlConnector/C++的数据库连接池的实现
    mysql Connector C/C++ 多线程封装
    OCP-1Z0-052-V8.02-108题
    OCP-1Z0-052-V8.02-105题
    OCP-1Z0-052-V8.02-104题
  • 原文地址:https://www.cnblogs.com/yeminglong/p/14505566.html
Copyright © 2011-2022 走看看