通过JavaScript实现在线测试HTTP延迟方法

通过JavaScript实现在线测试HTTP延迟方法

我们在选购 VPS 时,有时候需要看一下网络质量如何,但是有的商家会禁止 ping,或者数据中心可能会很多,一 个个测试需要花费较多时间,因此考虑是否能够实现批量测试 HTTP 延迟。HTTP/ICMP 延迟的区别HTTP PING 延迟测试的原理是,先在客户端和服务端建...

我们在选购 VPS 时,有时候需要看一下网络质量如何,但是有的商家会禁止 ping,或者数据中心可能会很多,一 个个测试需要花费较多时间,因此考虑是否能够实现批量测试 HTTP 延迟。

HTTP/ICMP 延迟的区别

HTTP PING 延迟测试的原理是,先在客户端和服务端建立一个 TCP 连接,然后发出一个检测包测量响应时间。

由 于 TCP 层是位于 IP 层之上,且完成三次握手过程才能成功创建一个连接,因此保证了 HTTP PING 的可靠性和强 壮性。

ICMP PING 原理是用类型码为 0 的 ICMP 发请求,收到请求的主机则用类型码为 8 的 ICMP 回应,PING 程序来 计算间隔时间,以及多少个包被送达,用户就可以判断网络大致的情况。

由于 ICMP 基于 IP 协议,它不保证数据 被送达。

HTTP PING 和 ICMP PING 主要区别,是 HTTP PING 在测量前要建立一个 TCP 连接,因此,如果是用于建站、 数据存储等等基于 HTTP 传输数据的用途,HTTP PING 延迟更能提现服务器网络性能。

onerror 事件 onerror 事件会在文档或图像加载过程中发生错误时被触发,因此我们可以利用这个时间差计算出 HTTP 延迟。

实现方法

简单举个例子:

HTML 代码:

<p><a href='https://www.vipiu.net' target='_blank'>www.vircloud.net</a></p>
<p><a href='https://www.baidu.com' target='_blank'>www.baidu.com</a></p>
<p><a href='https://www.qq.com' target='_blank'>www.qq.com</a></p>

JavaScript 代码:

var ping = 1,urlList = ['https://www.vipiu.net','https://www.baidu.com','https://www.qq.com'];
setInterval("ping++",100);
newRequest();
function newRequest(){
 for(var i=0;i<urlList.length;i++){
 $("p").eq(i).find('span').html('测速中...');
 $("p").eq(i).find('span').append("<img src="+urlList[i]+"/"+Math.random()+" width='1' height='1' onerror='autotest("+i+")' style='display:none
 }
}
function autotest(i){
 $("p").eq(i).find("span").text(ping*100+"ms");
}
版权申明:
版权声明

①:本站文章均为原创,除非另有说明,否则本站内容依据CC BY-NC-SA 4.0许可证进行授权,转载请附上出处链接,谢谢。
②:本站提供的所有资源均为网上搜集,不保证能100%完整,如有涉及或侵害到您的版权请立即通知我们。
③:本站所有下载文件,仅用作学习研究使用,请下载后24小时内删除,支持正版,勿用作商业用途。
④:本站保证所提供资源的完整性,但不含授权许可、帮助文档、XML文件、PSD、后续升级等。
⑤:使用该资源需要用户有一定代码基础知识!由本站提供的资源对您的网站或计算机造成严重后果的本站概不负责。
⑥:本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑦:如果喜欢本站资源,欢迎捐助本站开通会员享受优惠折扣,谢谢支持!
⑧:如果网盘地址失效,请在相应资源页面下留言,我们会尽快修复下载地址。

0

评论0

请先

会员低至49元,开通享海量VIP资源免费下载 自助开通
显示验证码
没有账号?注册  忘记密码?