当前位置: 首页 > article >正文

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

一、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.kler.cn/news/136767.html

相关文章:

  • colcon构建ros2功能包时,出现exited with code 2报错的解决方案(bug)
  • 计算机毕业设计PySpark+大模型高考推荐系统 高考分数线预测 高考爬虫 协同过滤推荐算法 Vue.js Django Hadoop 大数据毕设
  • 【ChatGPT】如何通过实例提升 ChatGPT 的回答质量
  • 【计网】从零开始认识IP协议 --- 理解网段划分,NAT策略,私有IP和公网IP,认识公网
  • iOS 本地存储地址(位置)
  • 【算法篇】动态规划类(4)——子序列(笔记)
  • 腾讯云标准型s5和s6有什么区别?CPU处理器有差异吗?
  • 【Go入门】Web工作方式
  • 腾讯云服务器标准型S5实例CPU性能如何?配置特性说明
  • 【双指针】:Leetcode1089.复写零
  • Web3名词解释
  • 最长公共子串 动态规划
  • 腾讯云轻量应用服务器三年租用价格表_免去续费困扰
  • 官宣!Sam Altman加入微软,OpenAI临时CEO曝光,回顾董事会‘’政变‘’始末
  • Dubbo开发系列
  • 2023 羊城杯 final
  • 【测试功能篇 01】Jmeter 压测接口最大并发量、吞吐量、TPS
  • git容易出问题的命令
  • gzip 压缩优化大 XML 响应的处理方法
  • 1688阿里巴巴API 1688商品采集API 1688获取商品列表API 订单API
  • c++ std::variant用法
  • django自带的cache无法多进程共享
  • 互联网上门洗衣洗鞋店小程序开发;
  • Python-列表和元祖的区别
  • 《深度学习500问》外链笔记
  • 从零开始:Rust环境搭建指南