欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > HTML >内容正文

HTML

如何获取浏览器的DNS解析时间

发布时间:2025/7/14 HTML 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 如何获取浏览器的DNS解析时间 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

首先看原理:

a <= <random number>t1  http://a-doppler.facebook.com/test_pixel?HTTP1.0&t=1&size=0kt2  http://a-doppler.facebook.com/test_pixel?HTTP1.1&t=2&size=0kt3  http://a-doppler.facebook.com/test_pixel?HTTP1.1&t=3&size=0kt4  http://a-doppler.facebook.com/test_pixel?HTTP1.1&t=4&size=10kt1 = DNS + New Connection +RTTt2 = New Connection + RTTt3 = RTT10k /(t4–t3)~TCP bandwidth来源:《MobilePerformanceVelocity2011.pdf》 by DavidWei.

这方案有两个关键点:

1、为了避免各种DNS缓存,每组请求必须用一个从来没被用过的全新N级域名。这就要求你的域名支持泛解析。例如我为了这个实践,开了*.qgy18.com的解析。

2、每组的第一个请求响应必须以HTTP/1.0返回。我开始还没注意这个,经aoao提醒才明白,这样才可以确保后面的请求会重建Connection。

t2 和t1指向同一个域名,且都需要重新建立连接,所以t2-t1是DNS解析时间;t2返回Connection: Keep-Alive,t3是在Keep-Alive指定的timeout时间内发起的新请求,且返回内容为空,所以是RTT(Round-Trip Time);t4在t3的基础上只是把返回内容大小由0k变成10k,所以t4-t3是加载这10k资源花费的时间,这就可以得到网络带宽了。为了减少网 络波动,也可以多测几次取平均值。

明白了原理就好办了,剩下的几行代码相信大家都会写,略过。

相比Navigation Timing提供的统计,这种方法好处是兼容绝大部分浏览器,没有浏览器实现上的差异和bug,能较准确的反应浏览器查询DNS所花费的时长;缺点是部署起来比较麻烦。

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的如何获取浏览器的DNS解析时间的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。