vue2中实现接口轮询和页面数据定时刷新

前言:

        很多时候,前端页面数据是需要实时数据,目前通信方式主要是https和websocket,如果想通过接口轮询在实现页面数据的定时刷新,那么可以参考下文,如果是websocet,可以参考。

正文:

        

         首先,定义定时器:    设置定时刷新,五分钟一次:

inverterMonTimer: null,

        其次,再所需要定时轮询的接口调用处,进行清除定时器以及数据接收之后的定时处理:

//判断定时刷新是否存在,存在先清除
if (this.inverterMonTimer) {clearInterval(this.inverterMonTimer);this.inverterMonTimer = null;
}				

        设置定时器:注意:1000代表1s,5分钟是300 * 1000

//设置五分钟一次的定时刷新
this.$nextTick(() => {this.inverterMonTimer = setInterval(() => {this.getRealNbqDataListData();}, 300000); //注意:1000代表1s,5分钟是300 * 1000
});

        最后页面钩子函数中,需要清除相应的定时器,避免资源消耗及其其他的问题产生:

activated() {if (this.inverterMonTimer) {clearInterval(this.inverterMonTimer);this.inverterMonTimer = null;}this.getRealNbqDataListData();
},deactivated() {if (this.inverterMonTimer) {clearInterval(this.inverterMonTimer);this.inverterMonTimer = null;}
},beforeDestroy() {if (this.inverterMonTimer) {clearInterval(this.inverterMonTimer);this.inverterMonTimer = null;}
},

全部源码:

import debounce from "lodash/debounce";export default {data() {return {page: 1pageSize: 20,total: 0,inverterMonTimer: null, //设置定时刷新,五分钟一次loading: false,rouceData: [], //数据接收}}methods: {//定时刷新列表数据getRealNbqDataListData: debounce(function () {let queryParams = {page: this.page,limit: this.pageSize,};this.rouceData = [];this.total = 0;//判断定时刷新是否存在,存在先清除if (this.inverterMonTimer) {clearInterval(this.inverterMonTimer);this.inverterMonTimer = null;}//已封装列表接口调用(仅供参考,盲目复制会报错!!!)getRealNbqDataList(queryParams).then(({ data: res }) => {if (res.code != 0) {this.$message.config({maxCount: 1,});this.$message.destroy();return this.$message.error(res.msg);}if (res.data.list.length > 0) {this.total = Number(res.data.total);for (let item of res.data.list) {item.eff = item.eff ? item.eff : 0.0;this.rouceData.push(item);}console.log(this.rouceData, "88888");//设置五分钟一次的定时刷新this.$nextTick(() => {this.inverterMonTimer = setInterval(() => {this.getRealNbqDataListData();}, 300000);});}}).catch((error) => {console.log(error);this.loading = false;return false;});this.loading = true;},200,{ leading: true, trailing: false })},mounted() {this.getRealNbqDataListData();},activated() {if (this.inverterMonTimer) {clearInterval(this.inverterMonTimer);this.inverterMonTimer = null;}this.getRealNbqDataListData();},deactivated() {if (this.inverterMonTimer) {clearInterval(this.inverterMonTimer);this.inverterMonTimer = null;}},beforeDestroy() {if (this.inverterMonTimer) {clearInterval(this.inverterMonTimer);this.inverterMonTimer = null;}},
}

         在上述代码中,rouceData是一个响应式的数据属性,它将会在每次定时器触发后更新,并且自动更新相关DOM。需要注意的是,在适当的时候,应该在组件销毁时清除定时器,以避免内存泄漏。可以在Vue组件的beforeDestroy等生命周期钩子函数中使用clearInterval函数清除定时器。

总结:

        以上就是在Vue中实现接口的定时刷新的一般步骤。当然,具体的实现方式可能会根据你的项目需求和后端接口的设计而有所调整。        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/128747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux学习第28天:Platform设备驱动开发(二): 专注与分散

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 三、硬件原理图分析 四、驱动开发 1、platform设备与驱动程序开发 53 /* 54 * 设备资源信息,也就是 LED0 所使用的所有寄存器 55 */ 56 static str…

《论文写作》课程总结

《论文写作》课程总结 前言 本文是我对《论文写作》课程的一个学习总结. 在上这门课程前我已经过接触学术论文写作, 我认为这门课对我的最大作用就是将我以前从视频、博客、写作、经验贴等地方学习到的写作经验系统地串了起来. 文章目录 《论文写作》课程总结前言概述Idea写作…

在ffmpeg中,如何把h264转换为rgb格式

在ffmpeg中,网络视频流h264为什么默认的转为YUV而不是其他格式 文章中介绍了,h264解码的时候是直接解码为yuv的,如果在使用的过程中 需要用到rgb的格式,我们该如何来转换这种格式呢? 在上面的文章中,我们已…

Nacos全面知识 ----微服务 SpringCloud

快速入门 分级存储模型 修改集群配置 Nacos设置负载均衡策略 集群优先 权重优先 Nacos热更新配置 Nacos添加配置信息 微服务配置拉取 热更新:推荐使用第二种方法进行热部署 ConfigurationProperties(prefix "pattern") 是 Spring Boot 中用于自动配置属性的注解。它…

echarts中 对seriesLayoutBy的理解

https://echarts.apache.org/handbook/zh/concepts/dataset/ ‘row’: 系列被安放到 dataset 的行上面。 这里x轴是目录轴,那么一列就是一个系列 ‘column’: 默认值。系列被安放到 dataset 的列上面。 用自己的话总结就是: 当 seriesLayoutBy 为行时&…

stm32 ETH

1 How do I create a project for STM32H7 with Ethernet and LwIP stack working? STM32 LWIP 接收大数据包导致Hardfault问题解决记录 Trying to get Ethernet, LWIP and FreeRTOS working on the STM32H745. Testing on the NUCLEO-H745ZI-Q using FW_1.7 and the STM32Cub…

CLion 2023.2.2(C ++ IDE智能代码编辑器)

CLion 2023是一款跨平台C/C集成开发环境(IDE)。它为Mac用户提供了高效的编程体验,帮助程序员们在Mac平台上进行C/C开发。 CLion 2023支持多种编译器和调试器,并具有强大的代码分析和导航功能。它还为用户提供了许多便捷的工具和插…

【SOC基础】单片机学习案例汇总 Part2:蜂鸣器、数码管显示

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

axios 多个baseURL配置、实现不同前缀代理到不同的服务器的几种方式

前言: 在开发中,有可能遇到每部分的功能的需要调用另一台服务器的地址。这个时候就需要设置不同的请求前缀首先代理到不同的服务器地址。 一、axios封装实例以及代理:(不是完整的封装实例,重点在于baseURL的区别) 文件路径&…

vi vim 末尾编辑按GA 在最后一行下方新增一行编辑按Go

vim 快速跳到文件末尾 在最后一行下方新增一行 移到末尾,并且进入文本录入模式 GA (大写G大写A) 在一般模式(刚进入的模式,esc模式) GA 或 Shift ga 先 G 或 shiftg 到最后一行 然后 A 或 shifta 到本行末尾 并且进入文本录入模式 在最后一行下方新增一行 (光标换行,文字不…

笔记-ssh登录openeuler登录不上

假设目标机器openeuler的IP是192.168.0.100 1.先检查网络是否连通: 在本地 telnet 192.168.0.100 22 (通常连接成功后,会显示类似SSH-2.0-OpenSSH_8.2版本信息) 以上需要sshd服务进程存在,以及防火墙是通的。 2. 查看&#xff1…

【嵌入式 C 常用算法 2 -- 变量值交换函数异或方式实现】

文章目录 变量值交换函数异或方式实现 变量值交换函数异或方式实现 在C语言中,可以使用异或运算符(^)来进行两个数的交换,而不需要使用额外的临时变量。这种交换方式的基础是异或运算的以下性质: 任何数和 0 做异或运…

【开发新的】apache common BeanUtils忽略null值

前言: BeanUtils默认的populate方法不会忽略空值和null值,在特定场景,我们需要原始的值避免被覆盖,所以这里提供一种自定义实现方式。 package com.hmwl.service.program;import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanu…

不会搭建企业网,建议你不要点开这篇文章

中午好,我是老杨。 企业网络搭建一直是网工技术里的基础且重要的部分,一些小白粉丝和我反馈,技术是了解一些,但是整体逻辑搭建不起来。 企业网是很多网工都会面临的一个工作日常环境。 但是,尽管很多人每日接触&…

15个常用网络端口解释【网络工程师必备技能】

网络端口概述 作为服务器管理员,需要了解的许多基本事项是一些常用服务使用的功能和端口号。正如IP地址标识计算机一样,网络端口标识计算机上运行的应用程序或服务。 在计算机网络中,端口是通信端点。通常,端口标识分配给它们的特…

react-router

一、react-router是什么 react-router是一个用于管理React应用程序中路由的库。路由是指确定应用程序如何根据URL路径来渲染不同的组件和页面。使用react-router可以将应用程序的不同页面映射到不同的URL路径,以及在用户导航时动态地加载适当的组件。这样&#xff…

shardingphere Sharding count cannot be null解决方案

shardingphere Sharding count cannot be null解决方案 问题背景解决方案Lyric: 我知道坚持要走 问题背景 使用shardingphere分表分库时,出现分表算法设置错误 Caused by: java.lang.IllegalArgumentException: Sharding count cannot be null.at com.…

mapbox使用marker创建html点位信息

mapbox使用marker创建html点位信息 codePen地址 mapboxgl.accessToken "pk.eyJ1IjoibGl1emhhbzI1ODAiLCJhIjoiY2xmcnV5c2NtMDd4eDNvbmxsbHEwYTMwbCJ9.T0QCxGEJsLWC9ncE1B1rRw"; const center [121.29786, 31.19365]; const map new mapboxgl.Map({container: &quo…

双十一买电视盒子什么牌子好?拆机达人强推目前性能最好的电视盒子

我这几年拆过的电视盒子已经有40多款了,最近看到网友们在讨论双十一电视盒子怎么挑选,就我拆机的经验来说,有些产品在硬件上存在问题的确较多,不知道双十一买电视盒子什么牌子好,可以参考我整理的目前性能最好的电视盒…

windows 运行 Mysql Command Line Client 自动关闭闪退原因分析

目录 原因分析一 原因分析二 原因分析三 第一次使用 MySQL Command Line Client 有可能输入密码后一按下回车键,程序窗口就自动关闭,出现闪退现象。本节主要分析产生闪退现象的原因以及如何处理这种情况。 原因分析一 首先可以查看程序默认执行文件…