2012-05-10 56 views
8

我們剛剛推出了一種新的基於ASP.NET MVC的web應用,可以在所有桌面連接上正常工作,所有移動設備(如iPhone,等等。但是,當通過3G連接(通過筆記本電腦上的3G加密狗或直接在移動設備上)查看某些頁面時,會提供空白的白頁,並且沒有任何內容。看起來好像我們已經返回了一個空的請求。ASP.NET MVC頁面不通過3G或某些代理服務器提供

在某些代理網絡中,我們遇到了類似的問題,他們說我們的請求大小太大。這種說法是有道理的,因爲它隻影響某些頁面,並且我會假設移動網絡提供商在他們這邊運行各種代理服務器。

但是,我一直未能找到任何有關構成太大請求的信息。我異形有問題的網頁之一,這裏有一些我認爲可能是相關的統計資料:

HTML內容的大小: 33.04KB壓縮,解壓縮50.65KB
總所有樣式表的大小(4個文件): 32.39KB壓縮,非壓縮181.65KB
所有外部JS的總大小(24個文件): 227.82KB壓縮,非壓縮851.46KB

對我來說,內容的壓縮大小並不是過大,但也許我錯了。任何人都可以建議我可以做些什麼來解決這個問題,因爲我很難找到有關這方面的任何明確信息。

+0

你是否打錯了未壓縮CSS的大小?我當然希望如此。 – thirtydot

+0

我做到了,對此抱歉。現在修復了 – pauldunlop

+0

你試過關閉壓縮嗎?這可能是因爲您的Web服務器以某些網絡代理或3G網絡中介無法處理的方式實施壓縮。至少,分享如何建立壓縮,以便我們可以看到問題出在哪裏。 – Jacob

回答

0

我們確實已經解決了這個問題,並且它已經下降到響應頭中Set-Cookie項的大小和數量。我們發現我們有一個bug,標題中有近100個Set-Cookie項目。解決這個錯誤,並減少值的大小解決了問題

2

就MVC而言,3G網絡與Wifi沒有區別。但是,移動設備可以緩存的文件的大小有限制。在這種情況下,每次回發都會從服務器請求這些文件。

由於有些頁面確實有效,我認爲將問題與特定的故障點分開比在野外搜索更好。

可以調試的問題與3G加密狗和Firefox中的Firebug或Chrome開發者工具easilt

  • 確保沒有在第一時間沒有Java腳本錯誤是造成問題
  • 確認的JavaScript/css/html文件確實傳遞給客戶端。 (客戶端上的Firebug)。在服務器上檢查IIS日誌或MS網絡監視器或創建一個http代理,您可以在其中監視流量。嘗試哪種方式讓你感到舒服。
  • 對於css/java腳本/ html,你有近30個請求,如果你有圖像,計數可能會更高。在3G上完成所有這些請求可能會持續下去。嘗試捆綁Java腳本文件並減少請求計數。瀏覽器對它們可以同時發出的請求的數量有限制,並增加了所有時間(Firefox我相信可以同時發出大約10個請求)。
+0

感謝您的建議。事情是,我們的JS/CSS加載目前沒有進行高度優化,所以我們在網站的每個頁面上都提供JS和CSS完全相同的,縮小的和捆綁的有效載荷。對我來說,這排除了它與JS/CSS相關的可能性。 我也假設它排除了緩存/加載問題,因爲相同的移動設備在WiFi連接上沒問題等。 我的假設是它必須與初始HTML數據包的大小有關,但我可以找到沒有信息來確認這是否會成爲問題,如果是,那麼這個尺寸限制是多少。 – pauldunlop

相關問題