定时请求接口怎么实现

前端页面上,我们的需求是比如6点10分更新一次第一个图表,6点20更新一次,6点30更新一次,6点40,6点50。就是每到整分钟就更新一次。然后每天的8点半,更新一第二个图表的数据(也就是重新调用一下接口方法),但是我现在想知道怎么判断整点和8点半这两个时刻啊?

    var minTimer = null
    var hourTimer = null
    // 整分
    function timerFunc() {
      var date = new Date()
      // 取当前分钟个位数,方便计算
      var mins = date.getMinutes() % 10
      // 触发时间:10 - mins 求出剩余时间
      var ticktack = (10 - mins) * 60 * 1000

      minTimer = setTimeout(timerFunc, ticktack)
      if (mins == 0) {
        console.log('整分了')
      }
    }
    timerFunc()
    // 8:30
    function hourTimerFunc() {
      const date = new Date()
      const hours = date.getHours()
      const mins = date.getMinutes()
      const now = date.getTime()
      const targetTime = new Date().setHours(8, 30, 0)
      // 剩余时间
      let remTime = targetTime > now ? (targetTime - now) : (targetTime + 86400000 - now)
      
      hourTimer = setTimeout(hourTimerFunc, remTime)
      if (hours === 8 && mins === 30) {
        console.log('8:30了')
      }
    }
    hourTimerFunc()

轮询 , setInterval

var timestamp = (new Date()).valueOf()
setInterval(()=>{
    timestamp+=1000
},1000)
再把timestamp拆成时分进行判断就可以了

思路:
设置定时器去请求,setInterval
vue中特别提醒;普通html忽略销毁操作
页面切换时候记得将定时器销毁
案例
定时请求


// 定时刷新数据函数
            dataRefreh() {
                // 计时器正在进行中,退出函数
                if (this.intervalId != null) {
                    return;
                }
                // 计时器为空,操作
                this.intervalId = setInterval(() => {
                    this.queryAlarm()
                }, 15000);
            },
            // 停止定时器
            clear() {
                clearInterval(this.intervalId); //清除计时器
                this.intervalId = null; //设置为null
            },

销毁
destroyed生命周期内销毁


destroyed(){
            // 在页面销毁后,清除计时器
            this.clear();
        }