2013-04-05 60 views
7

当我为我正在处理的一个相当大的应用程序加载url时,我会说每3-4次刷新应用程序挂起并停止加载。 Chrome会在左下方报告“发送请求”。我似乎无法找出其停止上的任何文件,而是发现这个线程:Chrome挂在“发送请求”似乎与套接字有关

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

这表明它可能是一个插座的问题。从这个页面刷新套接字(chrome:// net-internals /#sockets)会立即释放页面,所有事情都会继续正常加载。下面是从铬内部页面

chrome internals socket page

我意识到,这可能的确是Chrome错误的图像,但在此期间,我需要一个解决办法,因为用户在进行铬这个bug,并且可以” t加载应用程序。 想法?

+0

确实这个问题需要一个更大的赏金?更好地描述问题?我仍然坚持 - – chrismarx 2013-04-11 13:28:30

+0

确保您的服务器正在提供内容长度标头和EOF字符'\ 0'在主体的末尾。如果这不起作用,请尝试更改服务器的超时时间。这也可能与内容过期标题有关。祝你好运。 – 2013-04-11 23:02:14

+0

因为这个原因我不使用Chrom(ium) - 我经常遇到这个bug。我想指出的是,如果我在我的网站上观看apache访问日志,当Chrome在加载时挂起时,Chrome似乎认为它已发送请求,但未显示在日志中。 – artfulrobot 2013-09-09 12:35:09

回答

4

我知道2级的解决方法,没有一个是准确方便,但:

  1. 禁用SPDY:"...\chrome.exe" --use-spdy=off(遗憾的是无法通过标志进行)
  2. 禁用同步( “设置 - 断开你的谷歌账户”)

另一个选择是减少你的应用程序内的连接数量(服务于所有客户端 - 服务器通信的1个域+ 1个websocket连接的所有静态内容),并删除保留持久连接的小部件(twitter,disqus等) nections)在可能的情况下,这可能或可能不会帮助考虑所有Chrome标签之间共享的套接字池:(

个人对我来说,这个错误发生在Chrome 21以后的随机网站,并且有些被重置池的崩溃所抵制:)

+0

哦,好吧,减少连接是我想到的唯一的事情,很高兴听到别人也在做什么 - – chrismarx 2013-04-15 14:07:08

+0

好的,对于任何人来到这篇文章,我终于通过减少重定向的数量来解决这个问题由我的应用程序完成。我们有许多从同一个域加载的图像,但是根环境不同,这些重定向堆积如山,显然拖延了应用程序 – chrismarx 2013-04-16 14:39:33

+0

我没有同步设置,错误仍然存​​在。 – artfulrobot 2013-09-09 12:37:12

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>