我已經創建了一個簡單的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)"