uni-app:前端实现心跳机制(全局)+局部页面控制心跳暂停和重新心跳

news/2024/12/22 9:02:26/

一、App.vue全局中写入心跳

  • 在data中定义变量heartbeatTimer,便于暂停心跳使用
  • onLaunch中引用开始心跳的方法startHeartbeat()
  • 写入开始心跳方法
  • 写入暂停心跳方法
  • 写入请求后端刷心跳机制

  •  定义变量
// 在全局设置的心跳机制中添加一个变量来保存定时器的标识
data() {return {heartbeatTimer: null};
},
  • 在应用初始化时启动心跳
onLaunch: function() {//在应用初始化时启动心跳this.startHeartbeat(); // 在应用初始化时启动心跳
},
  • 写入开始心跳方法

        5s执行一次心跳        

startHeartbeat() {console.log('开始心跳')this.heartbeatTimer = setInterval(() => {this.sendHeartbeatRequest();}, 5000);
},
  • 写入暂停心跳方法
stopHeartbeat() {console.log('暂停心跳')clearInterval(this.heartbeatTimer);
},
  • 写入请求后端刷心跳机制

        发送心跳请求,这里我是是将方法放入的common.js中的,做了一个简单的封装   

sendHeartbeatRequest() {common.heart(this.globalData.access_token);
}

        请求后端刷心跳机制                   

//心跳
function heart(access_token){	uni.request({url: ip + 'sys/token',data: {access_token:access_token},method: 'POST',dataType: 'json',header: {"content-type": "application/json"},success: res => {console.log("成功心跳",res)},fail(res) {console.log(res)}});
}

二、局部变量中控制心跳的暂停和重新心跳

引用全局变量的方法:getApp().方法()

<template><view><button @tap="pauseHeartbeat">暂停心跳</button><button @tap="restartHeartbeat">开始心跳</button></view>
</template><script>const app = getApp();export default {data() {return {}},methods: {pauseHeartbeat() {const app = getApp();app.stopHeartbeat();console.log('已暂停心跳');},restartHeartbeat() {const app = getApp();app.startHeartbeat();console.log('已开始心跳');}}}
</script><style></style>


http://www.ppmy.cn/news/1230872.html

相关文章

HALCON根据需要创建自定义函数

任务要求&#xff1a; 创建函数myfun(a,b,c)&#xff0c;输入浮点数a&#xff0c;b的值&#xff0c;计算c a b&#xff0c;将计算结果返回。 操作步骤&#xff1a; 1&#xff09;打开HDevelop程序 2&#xff09;打开函数菜单&#xff0c;选择“创建新函数”&#xff0c…

torch 的数据加载 Datasets DataLoaders

点赞收藏关注&#xff01; 如需要转载&#xff0c;请注明出处&#xff01; torch的模型加载有两种方式&#xff1a; Datasets & DataLoaders torch本身可以提供两数据加载函数&#xff1a; torch.utils.data.DataLoader&#xff08;&#xff09;和torch.utils.data.Datase…

11 redis中分布式锁的实现

单机锁代码 import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.con…

如何解决requests库自动确定认证arded 类型

requests 库是一种非常强大的爬虫工具,可以用于快速构建高效和稳定的网络爬虫程序。对于经常使用爬虫IP用来网站爬虫反爬策略的我来说&#xff0c;下面遇到的问题应当值得我们思考一番。 问题背景 在使用requests库进行网络请求时&#xff0c;有时会遇到需要对目标服务进行认证…

c++模式之单例模式详解

c模式之单例模式详解 1.概念2.懒汉模式示例&#xff08;缺点&#xff09;3.懒汉模式线程安全4.饿汉式创建单例5.饿汉模式线程示例 1.概念 单例模式是指在整个系统生命周期内&#xff0c;保证一个类只能产生一个实例&#xff0c;确保该类的唯一性. 使用单例两个原因&#xff1a…

在 Windows 中关闭 Nginx 所有进程

在 Windows 中关闭 Nginx 所有进程并强制重启的命令如下&#xff1a; 打开命令提示符&#xff08;CMD&#xff09;。 输入以下命令来查找 Nginx 进程的 PID&#xff1a; tasklist /fi "imagename eq nginx.exe"此命令将列出所有名为 nginx.exe 的进程以及它们的 PID…

Visio免费版!Visio国产平替软件,终于被我找到啦!

作为一个职场人士&#xff0c;我经常需要绘制各种流程图和图表&#xff0c;而Visio一直是我使用的首选工具。但是&#xff0c;随着公司的发展和工作的需要&#xff0c;我逐渐发现了Visio的优点和不足。 首先&#xff0c;让我们来看看Visio的优点。Visio是一个专业的流程图和图…

JVS低代码表单设计:数据联动详解(多级数据级、数据回显等)

在这信息化时代&#xff0c;表单作为数据的收集和展示工具&#xff0c;已经渗透到不同的角落。JVS低代码对表单的设计和操作进行了不断的优化和创新。其中&#xff0c;联动回显作为一项重要的功能&#xff0c;无论是多级数据级联控制、组件的联动控制&#xff0c;还是多表的数据…