vue实现定时请求

文章介绍了如何在Vue应用中实现天气接口的调用策略,以满足大屏显示需求。在created钩子中初次请求数据,并使用setInterval在整点时更新,确保数据实时性的同时限制了API调用次数。此外,利用Vue的响应式系统更新页面显示的时间和列表内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:

我司现有大屏需要接入第三方天气接口,考虑到要保证数据的实时,并要确保限制天气api调用次数。 所以讨论决定在进入页面时调用api一次,并在整点调用一次。

因为大屏平均每天开启一次,从上午展示到晚上,所以不会频繁去打开页面


前端实现:

我们可以在Vue的created钩子函数中发送初次请求,并使用JavaScript中的setInterval函数来设置整点定时发送请求。以下是一个示例

<template>
  <div>
    <h1>当前时间:{{ currentTime }}</h1>
    <ul>
      <li v-for="item in items" :key="item.id">{{ item.name }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      currentTime: new Date().toLocaleString(),
      items: []
    };
  },
  created() {
    // 初次请求
    this.fetchData();

    // 设置整点定时发送请求
    setInterval(() => {
      const now = new Date();
      if (now.getMinutes() === 0 && now.getSeconds() === 0) {
        this.fetchData();
      }
      this.currentTime = now.toLocaleString();
    }, 1000);
  },
  methods: {
    fetchData() {
      // 发送请求的代码
      // 例如使用axios发送请求
      axios.get('/api/items').then(response => {
        this.items = response.data;
      });
    }
  }
};
</script>

在上面的示例中,我们在created钩子函数中发送了初次请求,并使用setInterval函数设置了整点定时发送请求。在每秒钟的回调函数中,我们检查当前时间是否为整点,并在是的情况下调用fetchData方法。同时,我们还使用了Vue的响应式数据来更新页面中的时间和列表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摆烂小优

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值