2013-04-05 102 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>