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



测量Ajax请求往返时间的一个简单方法是测量请求开始和结束之间的时间(readyState 4)。这种测量有很多例子。

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

我知道这种功能现在可以通过Resource Timing API规范获得,但目前它并没有在所有浏览器中一致实现。

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

网络信息.rtt

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

const estimated_round_trip_time = navigator.connection.rtt;
console.log(estimated_round_trip_time);

注意:在发布时,navigator.connection.rtt仍被视为实验技术。预期行为在未来会发生变化,在应用程序中使用它之前要小心。请参见浏览器兼容性。

相关内容

  • 没有找到相关文章

最新更新