前端判断电脑是否断网 并且在重连的时候发请求给后端记录

用electron 打包的电脑软件 加了一个断网提示和联网发请求给后端做记录

<!DOCTYPE html>
<html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><!-- <title><%= htmlWebpackPlugin.options.title %></title> --><title>吧台绿树电竞 - V1.0.0 店铺ID</title><script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> </head><body><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.Please enable it to continue.</strong></noscript><div id="app"></div><!-- built files will be auto injected --><!-- 页面内容 --><script>let offlineTime = null;// let nowtim = new Date()window.addEventListener('online', () => {const now = new Date();if (offlineTime) {const offlineDuration = now - offlineTime; // 离线时长(毫秒)  console.log(`网络重连成功,上次断网时间:${new Date(offlineTime).toLocaleString()}, 重连时间:${now.toLocaleString()}, 离线时长:${offlineDuration} 毫秒`);alert(`网络重连成功,离线时长:${offlineDuration / 1000 / 60} 分钟`);this.sendAjaxRequest() //断网时间localStorage.setItem('nowTime', now.toLocaleString()); //重连this.nowRequest()} else {console.log(`网络重连成功,之前没有断网记录`);}offlineTime = null; // 重置离线时间  });window.addEventListener('offline', () => {offlineTime = new Date(); // 记录断网时间  console.log(`当前断网,时间:${offlineTime.toLocaleString()}`);localStorage.setItem('offlineTime', offlineTime.toLocaleString()); //断网alert('当前断网');});// 断网function sendAjaxRequest() {  var formData = new FormData();  formData.append('storeId', sessionStorage.getItem("storeId") || ''); formData.append('type', 0);  formData.append('ip', sessionStorage.getItem("ip") || ''); formData.append('createTime', offlineTime.toLocaleString() || ''); var xhr = new XMLHttpRequest();  xhr.open("POST", 'http://192.168.0.124:8091/bar/log/add', true); xhr.onload = function () {  if (xhr.status === 200) { } else {  console.error("Request failed. Returned status of " + xhr.status);  }  }; xhr.send(formData);  };//重连function nowRequest() {  let nowtim = new Date()var Data = new FormData();  Data.append('storeId', sessionStorage.getItem("storeId") || ''); Data.append('type', 1);  Data.append('ip', sessionStorage.getItem("ip") || ''); Data.append('createTime', nowtim.toLocaleString() || ''); var xhrb = new XMLHttpRequest();  xhrb.open("POST", 'http://192.168.0.124:8091/bar/log/add', true); xhrb.onload = function () {  if (xhrb.status === 200) {  console.log(xhrb.responseText);  } else {  console.error("Request failed. Returned status of " + xhrb.status);  }  };  xhrb.send(Data);  } </script>
</body></html>

我是写在public- index.html 文件中 这样他只要是在运行中都可以 判断是否断网

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

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

相关文章

基于振弦采集仪的高速公路路基工程安全监测技术研究

基于振弦采集仪的高速公路路基工程安全监测技术研究 高速公路是现代交通系统的重要组成部分&#xff0c;对于保障人民生命财产安全以及经济社会发展起着至关重要的作用。然而&#xff0c;由于高速公路长期承受车辆的运行荷载和自然环境的影响&#xff0c;路基工程的安全问题一…

gma 2 教程(三)坐标参考系统:4.内置单位和子午线

安装 gma&#xff1a;pip install gma 内置单位 gma内置单位主要包括地理坐标系的角度单位和投影坐标系的线性单位两大类。 角度单位 内置常用的角度单位&#xff08;在crs.AngularUnits下&#xff09;名称及值见下表&#xff1a; 内置角度单位中文名值&#xff08;弧度&…

众筹首发 | 当当狸智能天文望远镜TW2,大屏实时观景 长焦定格远方!

满天的繁星和远方景色&#xff0c;让人无比向往&#xff0c;你是否也曾渴望探索星空的奥秘&#xff0c;沉醉在无垠的美景之中&#xff1f; 然而&#xff0c;当我们用望远镜远眺星空时&#xff0c;固定姿势的观测经常让人感到疲惫&#xff0c;而普通相机亦是难以触及更远的距离…

nodejs爬取小红书图片

昨天的文章已经描述了可以抓取评论区内容&#xff0c; 抓取图片内容和抓取评论区的内容基本一致 我们可以看到接口信息中含有图片链接&#xff0c;我们要做的就是爬取图片链接然后下载 这边要用到的模块为const downloadrequire(download) 将爬到的图片链接存放到images数组…

绝杀 GETPOST 嵌套的 JSON 参数

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;常用于Web应用程序中的数据传输。在HTTP数据包信息传递时&#xff0c;JSON扮演着非常正常的角色&#xff0c;因为它是一种通用的数据格式&#xff0c;可以被多种编程语言和应用程…

Kimichat使用案例019:15个Kimichat提示词案例

文章目录 一、扮演招聘经理二、扮演英语教师三、文章修改润色四、模仿特定作者写文章五、扮演任何一个角色六、像董宇辉一样介绍一本书七、写商业计划书的大纲八、头脑风暴九、总结文章十、推荐书籍十一、写电子邮件十二、学习Python编程十三、Python编程十四、制作菜谱十五、写…

前端 JS 经典:Vue 状态仓库持久化

前言&#xff1a;当我们刷新页面的时侯&#xff0c;在状态仓库的数据会被重置&#xff0c;当我们不希望这些数据被重置时&#xff0c;可以通过给状态管理的插件添加插件方法实现。Vue 的状态管理有 Vuex 和 Pinia。下面分别是两种状态库的数据持久化的实现。 1. Vuex 在 stor…

三、map可迭代对象中的每个函数应用函数

函数map&#xff08;&#xff09;的使用 def square(x):return x **2#函数方法 numbers[1,2,3,4,5,6,7,8,9] #print(list(map(square,numbers))) clist(map(square,numbers))#转换为列表 print(c)

网格布局之重复轨道

网格布局之重复轨道 欢迎关注&#xff1a;xssy5431 小拾岁月 参考链接&#xff1a;https://mp.weixin.qq.com/s/FQboZRMhdOFWqVDZ5JScDg 点击查看 使用场景 在网页开发中&#xff0c;我们尝尝会遇到宫格布局&#xff0c;比如&#xff1a;3 * 3&#xff0c;4 * 4布局等等。 …

串扰(二)

三、感性串扰 首先看下串扰模型及电流方向&#xff1a; 由于电感是阻碍电流变化&#xff0c;受害线的电流方向和攻击线的电流方向相反。同时由于受害线阻抗均匀&#xff0c;故有Vb-Vf&#xff08;感应电流属于电池内部电流&#xff09;。 分析感性串扰大小仍然是按微分的方法…

C++11(下):线程库

线程库 1.线程1.1线程类介绍以及简单使用1.2线程函数参数1.3如何获取线程函数返回值 2.锁2.1锁的种类2.2 lock_guard与unique_lock 3.原子库3.1介绍与基本使用3.2CAS&#xff08;原子操作原理&#xff09; 4.条件变量 1.线程 1.1线程类介绍以及简单使用 在C11之前&#xff0c…

2024年仿真建模与多媒体技术国际学术会议(ISMMT 2024)

全称&#xff1a;2024年仿真建模与多媒体技术国际学术会议&#xff08;ISMMT 2024&#xff09; 会议网址:http://www.ismmt.com 会议时间&#xff1a;最终通知见官网&#xff01; 会议地点: 深圳 投稿邮箱&#xff1a;ismmtsub-conf.com投稿标题&#xff1a;ArticleTEL。投稿时…

工程咨询单位申请乙级资信预评价的关键要素与条件

工程咨询单位申请乙级资信预评价的关键要素与条件可以归纳如下&#xff1a; 一、专业技术力量 单位咨询工程师&#xff08;投资&#xff09;数量&#xff1a;不少于4人。 专业人员配备&#xff1a; 申请评价的专业应配备至少3名咨询工程师&#xff08;投资&#xff09;。同时…

LabVIEW在中国航天中的应用

​LabVIEW是一种系统设计平台及开发环境&#xff0c;由美国国家仪器公司&#xff08;NI&#xff09;开发。它在中国航天领域的应用非常广泛&#xff0c;涵盖了测试与测量、数据采集、控制系统设计等多个方面。以下是LabVIEW在中国航天中的几个主要应用实例&#xff1a; 1. 测试…

QT系列教程(11) TextEdit实现Qt 文本高亮

文本高亮 对于textedit里录入的部分单词我们可以实现高亮&#xff0c;实现高亮主要依赖于QSyntaxHighlighter。 我们先创建一个Qt Application类&#xff0c;类名MainWindow, 然后新增一个C类&#xff0c;类名为MySyntaxHighlighter。 #ifndef MYSYNTAXHIGHLIGHTER_H #define …

麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!

为什么要学习Python&#xff1f; Python简单易学&#xff0c;且提供了丰富的第三方库&#xff0c;可以用较少的代码完成较多的工作&#xff0c;使开发者能够专注于如何解决问题而只花较少的时间去考虑如何编程。此外&#xff0c;Python还具有免费开源、跨平台、面向对象、胶水…

网络安全ctf比赛_学习资源整理,解题工具、比赛时间、解题思路、实战靶场、学习路线,推荐收藏!..._给一个照片,可以考虑的解题方向网络安全

对于想学习或者参加CTF比赛的朋友来说&#xff0c;CTF工具、练习靶场必不可少&#xff0c;今天给大家分享自己收藏的CTF资源&#xff0c;希望能对各位有所帮助。 CTF在线工具 首先给大家推荐我自己常用的3个CTF在线工具网站&#xff0c;内容齐全&#xff0c;收藏备用。 1、C…

编程思维的培养

培养编程思维是成为一名优秀程序员的重要步骤。编程思维不仅仅是写代码的能力&#xff0c;还包括解决问题的思维方式、对复杂系统的理解、代码优化的意识、团队合作的能力等。以下是一些培养编程思维的方法和建议。 1. 学习基础知识 1.1 掌握编程语言 从一门编程语言开始&am…

!力扣105. 从前序与中序遍历序列构造二叉树

给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,null,15,7] …

leetcode322零钱兑换(背包问题)

目录 题目 背包状态转移方程 0-1背包 完全背包 解决方案 题目 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金…