使用JavaScript在浏览器中获取实际的往返时间

时间:2014-04-16 13:45:48

标签: javascript ajax event-loop roundtrip navigation-timing-api

衡量Ajax请求的轮询时间的一种简单方法是测量请求开始和结束之间的时间(readyState 4)。这种测量存在许多例子。

但这种测量并不准确。只有在浏览器事件循环中出现时,才会调用Ajax回调。这意味着如果中间存在一些阻塞操作,则测量还将包含一些客户端处理时间,而不是实际的服务器往返时间(服务器处理时间+网络时间)。

我知道现在可以通过资源计时API规范获得此类功能,但目前并未在所有浏览器中一致地实现此功能。

有没有其他方法可以找出真正的往返时间或时间戳,服务器响应可用并等待相应的回调执行?

1 个答案:

答案 0 :(得分:0)

网络信息.rtt

您可以使用 navigator.connection.rtt 获取当前连接的估计有效往返时间,四舍五入到最接近的 25 毫秒倍数。

const estimated_round_trip_time = navigator.connection.rtt;

console.log(estimated_round_trip_time);

<块引用>

注意:在发布时,navigator.connection.rtt 仍被视为实验性技术。预计行为会在未来发生变化,并在您的应用程序中使用它之前谨慎行事。见Browser Compatibility