代码之家  ›  专栏  ›  技术社区  ›  Pure.Krome

有没有办法让我知道jqueryajax调用需要多长时间才能执行?

  •  2
  • Pure.Krome  · 技术社区  · 14 年前

    第二,有没有办法知道响应内容长度有多大,以kB或MB为单位?

    4 回复  |  直到 14 年前
        1
  •  4
  •   Community Dan Abramov    7 年前

    new Date().getTime();

    然后在ajax回调中,再次记下时间,并与第一次相减。这会告诉你电话的长度。

    像这样:

    function aCallback()
    {
       window.time2 = new Date().getTime();
       window.alert(window.time2 - window.time1)
    }
    window.time1 = new Date().getTime();
    $.ajax({
      url: url,
      dataType: 'json',
      data: data,
      success: aCallback
    });
    
        3
  •  1
  •   Mr. X    14 年前

    要回答你的第二个问题,你可以阅读 Content-Length XHR响应的头。

    var req;
    req = $.ajax({
        type: "HEAD",
        url: "/data",
        success: function () {
          alert("Size is " + req.getResponseHeader("Content-Length"));
        }
    });
    
        4
  •  -1
  •   Mechlar    14 年前

    为什么要重新发明轮子?使用firebug的控制台记录时间。这样做:

    function aCallback()
    {
       console.timeEnd("ajax call");
       window.alert(window.time2 - window.time1)
    }
    console.time("ajax call");
    $.ajax({
      url: url,
      dataType: 'json',
      data: data,
      success: aCallback
    });
    

    这将记录服务器响应返回到调用之前所花的时间。它将以毫秒为单位将时间记录到firebug控制台。