广告招租A广告招租B广告招租C广告招租D
返回列表 发布新帖
查看: 85|回复: 2

给你的网站页脚添加几个服务器延迟数据

发表于 2024-9-22 11:14:24 | 显示全部楼层 |阅读模式
有时候在外其他电脑没有v6,想内网穿透使用家里服务的时候,不知道使用的电脑网络使用哪个服务延迟比较低,所以就想在导航页添加一个搭建好frp服务器的延迟对比,然后挑选低的使用,每个服务器都穿透了相同的内网服务,这是我的使用场景。其他的就按需使用了!



正文
1.https的无法检测http的延迟
2.大家只需要修改下方代码中的百度或者谷歌地址,或者按照百度谷歌的格式继续添加即可,最后一个不要逗号
3.我是搭配sun-panel使用的,添加在个性化设置的页脚代码里面
4.检测的是当前使用的电脑网络到各个服务器的延迟
5.每次打开或者刷新导航页都会检测一次

代码
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>网络延迟测试</title>
  7.     <style>
  8.         footer {
  9.             position: fixed;
  10.             bottom: 0;
  11.             left: 0;
  12.             right: 0;
  13.             text-align: center;
  14.             background-color: rgba(0, 0, 0, 0.7);
  15.             color: white;
  16.             padding: 10px;
  17.         }
  18.     </style>
  19. </head>
  20. <body>
  21.     <footer id="footer">
  22.         <div id="latencies">延迟: 正在测量...</div>
  23.     </footer>

  24.     <script>
  25.         const websites = [
  26.             { name: '百度', url: 'https://www.baidu.com' },
  27.             { name: '谷歌', url: 'https://www.google.com' }
  28.         ];

  29.         async function fetchWithTimeout(url, timeout = 2000) {
  30.             return Promise.race([
  31.                 fetch(url, { method: 'HEAD', mode: 'no-cors' }),
  32.                 new Promise((_, reject) =>
  33.                     setTimeout(() => reject(new Error('超时')), timeout)
  34.                 )
  35.             ]);
  36.         }

  37.         async function measureLatency() {
  38.             const latencies = await Promise.all(websites.map(async site => {
  39.                 const start = Date.now();
  40.                 try {
  41.                     await fetchWithTimeout(site.url);
  42.                     const latency = Date.now() - start;
  43.                     return `${site.name}: ${latency} 毫秒`;
  44.                 } catch (error) {
  45.                     return `${site.name}: 测量失败 (${error.message})`;
  46.                 }
  47.             }));

  48.             document.getElementById('latencies').innerText = latencies.join(' | ');
  49.         }

  50.         measureLatency();
  51.     </script>
  52. </body>
  53. </html>
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
✍ 「老文社区」欢迎您 ...
发表于 2024-9-22 11:15:27 | 显示全部楼层
纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下
✍ 「老文社区」欢迎您 ...
回复

使用道具 举报

发表于 2024-9-22 11:15:27 | 显示全部楼层
占位编辑
✍ 「老文社区」欢迎您 ...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

[email protected]

@ 本站内容如侵犯您的权益,请联系管理员删除.
© 本站内容均为会员发表,并不代表本站立场!
  • 扫码手机访问
Copyright © 2001-2024 老文社区 版权所有 All Rights Reserved. |网站地图
关灯 快速发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表