是否有可能使用JavaScript分解XHR网络性能?



我有一个XHR请求。我想了解从发送请求到获得响应需要多少时间。我想说它在服务器上花费了X时间,在网络上花费了Y时间

您可以使用date对象来获取时间,在发送请求之前,您可以将时间戳存储在变量中,当它返回(xml)时。readyState = = 4,,Xml.status ==200),您可以获取另一个时间日期对象来获取时间,然后取其差值。

使用IE ->按F12 ->然后网络->捕获网络->你可以看到的每一个线程

你可以:

  1. 记录您发起请求的时间并将其存储在变量
  2. 记录服务器接收到的时间并将其存储在变量
  3. 记录服务器完成处理的时间,并在对客户端的响应中包含处理开始和结束的时间
  4. 记录客户端收到响应的时间。

从这四个时间戳中,您应该能够确定服务器接收请求花了多长时间,处理请求花了多长时间,客户端接收响应花了多长时间以及总时间。

不会100%准确,但会很接近。

  1. 可以使用Chrome中的开发工具或FF中的Firebug来查看网络跟踪您的请求。
  2. 您还可以查看应用程序的服务器端日志。我使用log4j,所以很容易看到时间戳
  3. 如果你想使用仅javascript代码来完成这一点,我会比如用console.log。您可以在它周围创建一个包装器一定要打印日期。如果console.log没有定义,请小心。

这是一个小js包装器:

log : function(message, debugType) {
    var str = new Date().toLocaleTimeString() + ", "
            + ((debugType) ? debugType : "INFO") + ", " + message;
    console.log(str);
}

然后你可以在XHR之前和之后调用它

最新更新