是否有可能使用JavaScript破坏XHR网络性能?

是否有可能使用JavaScript破坏XHR网络性能?,javascript,performance,xmlhttprequest,Javascript,Performance,Xmlhttprequest,我有一个XHR请求。 我想了解从发送请求到获得响应需要多少时间。 我想说它在服务器上花了X时间,在网络上花了Y时间 您可以使用Chrome中的开发工具或FF中的Firebug查看 网络跟踪您的请求 您还可以查看应用程序的服务器端日志。我用 log4j,因此很容易看到时间戳 如果您只想使用javascript代码来实现这一点,我会 说使用console.log。您可以在其周围创建一个包装器来 总是打印日期。如果未定义console.log,请小心 下面是一个小js包装器: log : functi

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

  • 您可以使用Chrome中的开发工具或FF中的Firebug查看 网络跟踪您的请求
  • 您还可以查看应用程序的服务器端日志。我用 log4j,因此很容易看到时间戳
  • 如果您只想使用javascript代码来实现这一点,我会 说使用
    console.log
    。您可以在其周围创建一个包装器来 总是打印日期。如果未定义console.log,请小心
  • 下面是一个小js包装器:

    log : function(message, debugType) {
        var str = new Date().toLocaleTimeString() + ", "
                + ((debugType) ? debugType : "INFO") + ", " + message;
        console.log(str);
    }
    
    然后,您可以在XHR之前和之后调用它。

    您可以:

  • 记录启动请求的时间并将其存储在变量中
  • 服务器收到时间后立即记录时间,并将其存储在变量中
  • 记录服务器完成处理的时间,并在对客户端的响应中包括处理开始和结束的时间
  • 记录客户端接收响应的时间 根据这四个时间戳,您应该能够确定服务器接收请求的时间、处理请求的时间、客户端接收响应的时间以及总时间


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

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


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

    Chrome的网络选项卡在描述XHR的序列方面做得非常好。我只想通过客户端代码(JavaScript)实现目标。您需要JavaScript中的信息,还是仅用于调试?在运行时(JavaScript)您可以尝试复制(类似于XHR),但它没有得到广泛支持。这样,您只能记录
    readyStateChange
    事件的时间戳。不……我想答案是不可能通过javascript实现……我只想通过客户端代码(javascript)实现目标——因此我无法在服务器端记录任何内容