我正在實時共享圖片網站。它可以讓全世界的用戶一起看照片並發表評論,並且可以實時查看誰在看什麼。Angular:在Firefox中使用img ng-src時緩存圖片似乎損壞
我曾經使用jQuery DOM操作(插入<img>
標籤)根據用戶點擊的內容顯示不同的圖像,最近用ng-src指令用Angular控制器替換了這個表示邏輯。
邏輯整體工作,但我注意到,在Firefox,角,使每一次我改變了NG-SRC值的GET請求,當我想到的是圖像的瀏覽器緩存。
如果你去這裏:http://dev14-www.photozzap.com/conference/j4bxpt3n,然後打開Firebug/Net視圖,並在兩張照片之間來回切換,你會發現它會對圖像發出GET請求,即使這些圖像應該在緩存中。
的影響是,用戶將看到他們的照片,它實際上顯示時間點擊時間之間有些滯後。
在Chrome,開發者/淨視圖清楚地示出該圖像是從緩存中來回切換圖像之間時拉動。
可我的代碼進行修復,使圖像能夠在Firefox緩存或者是有一個角度的問題呢? Chrome似乎在做正確的事情。
我又看了一遍。看起來像剛剛推出的Firefox 24,可以正確使用緩存中的圖像。如果我的Firefox已經啓動了幾個小時,那麼每次我在照片之間切換時,突然開始發出GET請求。 – Luc
我已經試驗了更多,發現如果我使用Firebug,Firefox的緩存有時會以意想不到的方式運行(請求GET對象,我期望緩存)。我意識到Firebug中的Net面板有一個「禁用瀏覽器緩存」選項,但有時出現意外的行爲甚至無法啓用此選項。如果我使用Firebug從未激活的新啓動的Firefox會話,我會看到適當的緩存行爲。 – Luc
我也注意到了這種行爲,但如果初始請求返回304,我只得到304,並且它不考慮任何max-age或Expires標頭。如果初始請求是200,則它將繼續獲得200響應,因爲它在隨後的請求中不發送和If-Modified-Since。這看起來像一個錯誤,Chrome不會這樣。如果這與螢火蟲有關,它可能不是真正的問題,將需要檢查代理日誌,以確保。 – jishi