(@_@;)我是程序猿,我编程,我快乐,知识改变命运,技术成就梦想   oh yeah!合作VX "w6668263" 联系Email:ye583025823@126.com

按照准时准点的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()

 

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

我也笑自己傻,真傻

posted on 2021-03-09 14:58  一个草率的龙果果  阅读(74)  评论(0编辑  收藏  举报

导航