2009-03-04 119 views
0

我已經創建了一個簡單的JSF圖片瀏覽應用程序,並且我遇到了Firefox的問題。Firefox請求圖片緩慢

該應用程序本身在Tomcat中運行。這些圖片存儲在由Apache提供的目錄中。我有9張圖片在網頁上顯示。服務器位於與客戶端分開的機器上。當我嘗試在Firefox中加載頁面時,通常6張圖片會立即加載(< 500毫秒)。其他三個將需要15至20秒加載。看看apache日誌,看起來firefox並沒有要求這三張圖片,直到15-20秒過去 - 也就是說,我看到6個請求在同一時間,然後15秒後,其他三個。我已經在Internet Explorer中嘗試了該網站,而IE沒有這個問題;它立即加載所有9張照片。我嘗試了幾種不同的機器,並獲得相同的結果。 html很快渲染,< 200ms,所以我不認爲這是一個JSF問題(尤其是因爲圖片是從Apache服務的)。

數字並不總是一樣的 - 有時它會加載8張圖片,有時是7張,有時第二批請求會一次全部到達,有時它會加載2個以上,等等。我不確定這是一個Firefox還是一個bug,或者有什麼服務器端可以處理,但我認爲我會把它扔到那裏,看看有沒有人有任何想法可以嘗試。

如果有幫助,這裏是從Firefox

Apache日誌行
192.168.1.30 - - [04/Mar/2009:14:25:40 -0500] "GET /work/DSCF0185_thumbnail.jpg HTTP/1.1" 200 7902 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)" 

,一個來自IE

192.168.1.30 - - [04/Mar/2009:14:34:14 -0500] "GET /work/DSCF0179_thumbnail.jpg HTTP/1.1" 304 - "http://192.168.1.83:8080/app/browse.jsf" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.1.4322; MS-RTC LM 8; Windows-Media-Player/10.00.00.3990; FDM; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 

編輯 我從螢火蟲的時機 - 這表明整個請求(例如)18秒,「接收數據」的時間爲17.9秒,其餘的則排隊等候。直到17.9秒結束,我沒有看到Apache日誌中的實際請求,這導致我相信這是一個Firefox的事情,尤其是因爲IE不顯示問題。如果它在服務器中,我希望在兩個瀏覽器中都能看到問題。

關閉firefox中的流水線。

正如所指出的,我的IE日誌顯示它正在打高速緩存 - 我的錯誤,抓住了日誌文件的錯誤部分。這裏有一個乾淨的日誌行 - 即使在清除緩存後,IE也不會顯示與firefox相同的問題。

192.168.1.30 - - [04/Mar/2009:15:52:18 -0500] "GET /vantagework/DSCF0189_thumbnail.jpg HTTP/1.1" 200 5805 "http://192.168.1.83:8080/vantage/browse.jsf" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.1.4322; MS-RTC LM 8; Windows-Media-Player/10.00.00.3990; FDM; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 

回答

0

事實證明,這是由我的apache配置引起的。一些調整調整已經完成,並且恢復到開箱即用的apache配置解決了問題。

3

使用Firebug的「網」控制檯來檢查它是否是Firefox或網絡服務器,爲你的網絡服務器可能會考慮它的時間來接受連接。

Firebug的「網」控制檯會告訴你它開始請求東西的時候,給你請求圖像(排隊,等等等等)的不同部分的詳細分類 -

0

根據您的日誌片段,IE正在從緩存中檢索圖像,Firefox正在從服務器獲取圖像。因此,如果緩慢提供圖像的服務器配置出現問題,如果您先清除緩存,則只會在IE中看到類似的行爲,所以我會嘗試驗證非緩存圖像確實會採用不同的數量的時間在Firefox和IE之間下載。

我要檢查的另一件事是看看您是否在Firefox中啓用了pipelining。如果你這樣做,我建議你禁用它,這可能會導致你的服務器出現問題。