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…

在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 为行时&…

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】 📢:文章若有幸对你有帮助,可点赞 👍…

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

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

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

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

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 有可能输入密码后一按下回车键,程序窗口就自动关闭,出现闪退现象。本节主要分析产生闪退现象的原因以及如何处理这种情况。 原因分析一 首先可以查看程序默认执行文件…

电源管理(PMIC)MAX20428ATIA/VY、MAX20428ATIC/VY、MAX20428ATIE/VY适合汽车ADAS应用的开关稳压器

一、概述 MAX20428是一款高效率、八路输出、低压PMIC。OUT1将输入电源升压至5V,电流高达500mA,而三个同步降压转换器的输入电压范围为3.0V至4.2V,输出电压范围为0.8V至3.9875V,峰值电流分别高达1.3A、1.3A和3.5A。三个300mA pMOS…

团队表 -多级团队设计

团队表 -多级团队设计 user_team团队表 ,如果存在子团队 1.我们可以通过每一个团队字段加一个parentid (相当于一对多的关系) 2.还可以设置一个字段CodingNum,比如这样: //系统为了管理查询团队自动生成的有序编号 可以使用3位数代表一个…

Spring cloud教程Gateway服务网关

Spring cloud教程|Gateway服务网关 写在前面的话: 本笔记在参考网上视频以及博客的基础上,只做个人学习笔记,如有侵权,请联系删除,谢谢! Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,…

JS中null和undefined的区别

首先 Undefined 和 Null 都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 undefined 和 null。 undefined 代表的含义是未定义,null 代表的含义是空对象。一般变量声明了但还没有定义的时候会返回 undefined,null主要…

使用HttpClient库的爬虫程序

使用HttpClient库的爬虫程序,该爬虫使用C#来抓取内容。 using System; using System.Net.Http; using System.Threading.Tasks; ​ namespace CrawlerProgram {class Program{static void Main(string[] args){// 创建HttpClient对象using (HttpClient client new…

Ubuntu更新apt-get安装镜像源

前往清华开源镜像站获取镜像链接 修改镜像源,打开配置文件,将镜像源链接粘贴到配置文件 sudo vim /etc/apt/sources.list更新软件列表到本地 sudo apt-get update更新所有软件(非必要) sudp apt-get upgrade

java入门,程序=数据结构+算法

一、前言 在学习java的时候,我印象最深的一句话是:程序数据结构算法,对于写java程序来说,这就是java的入门。 二、java基本数据结构与算法 1、数据类型 java中的数据类型8种基本数据类型: 整型 byte 、short 、int…