前端 网络相关事件 交互
设置断线、上线提示
- 这里可以做断线重连
- 使用
online
表示在线事件 - 使用
offline
表示离线事件
- 使用
当前是否离线
javascript
/**
* * 判断是否离线
* 如果是在线将值改为在线
*/
window.addEventListener("offline", function (event) {
onlineStatus.innerHTML = "离线"
isOnline = false
})
当前是否在线
javascript
/**
* * 判断是否在线
* 如果是在线将值改为在线
*/
window.addEventListener("online", function (event) {
onlineStatus.innerHTML = "在线"
isOnline = true
})
全部代码
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" name="" id="">
<h1 id="onlineStatus"></h1>
<div id="networkStatus"></div>
</body>
<script>
const onlineStatus = document.getElementById("onlineStatus")
const networkStatus = document.getElementById("networkStatus")
let isOnline = true// 在线状态
/**
* * 当前是否在线
* 如果加载时如果不在线则修改状态
*/
window.addEventListener("load", function (event) {
if (isOnline) {
onlineStatus.innerHTML = "在线"
}
})
/**
* * 判断是否离线
* 如果是在线将值改为在线
*/
window.addEventListener("offline", function (event) {
onlineStatus.innerHTML = "离线"
isOnline = false
})
/**
* * 判断是否在线
* 如果是在线将值改为在线
*/
window.addEventListener("online", function (event) {
onlineStatus.innerHTML = "在线"
isOnline = true
})
</script>
</html>
获取网络信息
- 网络连接类型
- 网络连接有效类型
- 最大下载速度
- 估计往返时延
- 数据节省模式
javascript
// 当前网络连接对象
const networkInfo = navigator.connection;
console.log('网络连接类型:', networkInfo.type);
console.log('网络连接有效类型:', networkInfo.effectiveType);
console.log('最大下载速度:', networkInfo.downlinkMax + ' Mbps');
console.log('估计往返时延:', networkInfo.rtt + ' ms');
console.log('数据节省模式:', networkInfo.saveData ? '已启用' : '未启用');