使用JavaScript测量客户端的网络延迟(第一个字节的时间)

时间:2017-05-06 13:50:55

标签: javascript performance xmlhttprequest

我正在尝试让客户端JavaScript选择网络延迟最低的服务器。目前,客户端向所有服务器发送XMLHttpRequest,并选择加载速度最快的服务器。

但是,我注意到从请求中的send()呼叫到收到响应的时间包括请求尚未发送的大量时间。

以下是Chrome开发者工具的屏幕截图:

Screenshot

可以看出,“Waiting(TTFB)”时间(绿色,红色箭头指向它)是我想要的网络延迟。但是,在“停顿”和“初始连接”状态下花费了大量时间。在这些状态下花费的时间(特别是“初始连接”)在请求之间差别很大,因此我现有的计算最小延迟的方法可能会产生错误的结果。

Google谈论每个部分here的含义。

XMLHttpRequest.readyState属性似乎无法满足我的要求。我想我需要一个介于OPENEDHEADERS_RECEIVED之间的状态来表示请求已被发送,然后测量状态为HEADERS_RECEIVED的时间。 (或者我在这里遗漏了什么?)

那么,有没有办法衡量我想要的时间,或者至少衡量一些接近的东西?

0 个答案:

没有答案