【问题标题】:Chrome Network Web Developer Tool tab says Dojo AJAX requests are taking around 44 years to completeChrome Network Web Developer Tool 选项卡显示 Dojo AJAX 请求需要大约 44 年才能完成
【发布时间】:2013-12-04 23:23:59
【问题描述】:

Web Developer Tools 中的 Chrome 网络选项卡显示我的一堆 AJAX 请求需要 16027.8 天才能完成。这...不是他们需要多长时间。

我可以在多台机器以及开发和生产环境中复制它。这发生在onload 发生的所有Dojo AJAX 请求上。其他 webapp 或 3rd 方请求(如登录 AJAX 或 facebook)不会发生这种情况。

这是怎么回事?我们的服务器是不是搞砸了?它是 chrome 开发工具中的错误吗(几乎可以肯定是,对吗?),如果是,有什么可以解决的吗?正如您可以想象的那样,它使视觉瀑布变得毫无用处。

编辑:根据新信息,这似乎是 IBM Websphere Commerce 站点的常见问题。服务器或代码可能导致这种情况怎么办?看这里的例子:

http://www.ikea.com/us/en/catalog/categories/departments/kitchen/# http://www.lavieenrose.com/webapp/wcs/stores/servlet/LVER_10052_10001_-1 http://www.ferragamo.com/shop/en/usa

编辑 2:此问题已在最新版本的 Chrome 中得到修复。

【问题讨论】:

  • 对于这么长的请求来说延迟非常好。
  • 这是 Windows 7 上的 Chrome 版本 31.0.1650.57 m,如果有帮助的话。
  • 您是否尝试在浏览器中禁用所有附加组件的情况下运行它?
  • 我只是在隐身模式下再次运行它(禁用扩展),结果是一样的。
  • 刚刚意识到 16041 天前是 1970 年 1 月 1 日。EPOCH FAIL。

标签: javascript ajax google-chrome websphere google-chrome-devtools


【解决方案1】:

此问题与 Web 框架或服务器无关。问题影响 Chrome 浏览器版本 31.0.1650.57。

现在问题已得到修复,将在下一次稳定的频道更新中提供。 Fix diff

如果您急需修复,您可以更新到开发频道版本。 Instructions

更多详情请见this issue

【讨论】:

    【解决方案2】:

    很奇怪。也能够在 OSX Mavericks 上的 Chrome 31.0.1650.57 上重新创建。使用 ikea 链接进行测试,发现 Chrome 报告了 16028.7 days,资源 /us/en/iows/tealium 的延迟为 41 毫秒。

    Charles 代理显示这些标头:

    HTTP/1.1 304 Not Modified
    Content-Type: application/json
    Last-Modified: Mon, 18 Nov 2013 18:34:51 GMT
    Cache-Control: public, max-age=7200
    Date: Sat, 23 Nov 2013 00:32:26 GMT
    Connection: keep-alive
    Vary: Accept-Encoding
    

    代理应用程序 (Charles) 没有报告这样的奇怪时间 - 它显示为 40 毫秒。

    lavieenrose.com 链接也导致 Chrome 报告时间为 16028.7 天...这似乎很常见。 查尔斯显示:

    HTTP/1.1 200 OK
    Date: Sat, 23 Nov 2013 00:46:37 GMT
    Server: IBM_HTTP_Server
    Last-Modified: Tue, 19 Jun 2012 13:05:34 GMT
    ETag: "5c487f-1a15-4c2d2f01a0380"
    Accept-Ranges: bytes
    Vary: Accept-Encoding
    Content-Encoding: gzip
    Content-Length: 1738
    Content-Type: application/x-javascript
    

    我的结论是这不是服务器响应或标头问题。我认为这是 Chromium 或 WebKit 开发工具问题。

    这里是开发工具 JS 对象的 HEAD,它表示网络选项卡呈现的 http 请求:

    https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/devtools/front_end/NetworkRequest.js

    我想知道set endTime() 中的数学:

    set endTime(x)
    {
        if (this.timing && this.timing.requestTime) {
            // Check against accurate responseReceivedTime.
            this._endTime = Math.max(x, this.responseReceivedTime);
        } else {
            // Prefer endTime since it might be from the network stack.
            this._endTime = x;
            if (this._responseReceivedTime > x)
                this._responseReceivedTime = x;
        }
    },
    

    目前还没有答案,但也许有更深入了解 WebKit/Chromium DevTools 的人可能会看到这个......

    【讨论】:

      猜你喜欢
      • 2023-03-20
      • 1970-01-01
      • 2015-12-14
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-16
      相关资源
      最近更新 更多