7

当我为我正在处理的一个相当大的应用程序加载 url 时,我会说每 3-4 次重新加载应用程序就会挂起并停止加载。Chrome 在左下角报告“正在发送请求”。我似乎无法识别它停止的任何文件,而是找到了这个线程:

https://code.google.com/p/chromium/issues/detail?id=55046

这表明它可能是一个套接字问题。从此页面 (chrome://net-internals/#sockets) 刷新套接字会立即释放页面,并且一切都可以正常加载。这是来自该 chrome 内部页面的图像

chrome内部套接字页面

我意识到这可能确实是一个 chrome 错误,但与此同时,我需要一个解决方法,因为用户在 chrome 中遇到了这个错误,并且无法加载应用程序。想法?

4

2 回答 2

4

我知道 2 个解决方法,但没有一个是完全方便的:

  1. 禁用 SPDY:("...\chrome.exe" --use-spdy=off不幸的是不能通过标志来完成)
  2. 禁用同步(“设置 - 断开您的 Google 帐户”)

另一种选择是减少应用程序中的连接数量(为所有客户端-服务器通信提供来自 1 个域的所有静态内容 + 1 个 websocket 连接),并在可能的情况下删除小部件(保持持久连接的 twitter、disqus 等),这可能或者可能无助于考虑在所有 Chrome 选项卡之间共享套接字池:(

就我个人而言,这个错误自 Chrome 21 以来发生在随机网站上,并且在某种程度上被重置池的崩溃所抵消:)

于 2013-04-14T23:45:24.820 回答
1

在您对正在重定向的图像提出建议并使用Fiddler2 之后,我发现我在图像中也有很多重定向。在我的例子中,我在ASP.NET MVC中有一个重写规则,它将我们的 URL 小写。我们的项目文件夹也是如此,在这种情况下,包含图像的文件夹,例如URL/Images/OurLogo.png成为url/images/ourlogo.png.

更改我们的重写规则以在条件标记中包含以下行,解决了该问题:

<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />

完整重写规则供参考:

<rule name="Convert to lower case" stopProcessing="true">
  <match url=".*[A-Z].*" ignoreCase="false" />
  <conditions>
    <add input="{REQUEST_METHOD}" matchType="Pattern" pattern="GET" ignoreCase="false" />
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  </conditions>
  <action type="Redirect" url="{ToLower:{R:0}}" redirectType="Permanent" />
</rule>
于 2013-07-25T10:39:12.503 回答