2016-12-01 38 views
0

我發現,由於我預先加載的背景圖像屬性中使用的圖像,Safari瀏覽器(桌面和移動)重新請求它們已經預先加載。 (並且Theire響應是304響應。)預加載背景圖像和304響應

如果圖像是預加載的,Chrome瀏覽器(桌面和移動設備)再也不會請求它。它只是立即出現。

但是我應該在Safari中等待幾次,因爲Safari會重新請求它獲得304響應!

我不希望在Safari中被重新請求,因爲如果div標籤的背景圖像被其類的動態更改,每當類更改時都會發生閃爍。

它在桌面上並不重要,但在Mobile中非常重要。

我怎麼能達到它?

P.S.

可以通過某種方式使用img標記,顯式CSS背景圖像或內容屬性或JavaScript來進行預加載!

回答

0

我在特殊情況下解決了這個問題。

在我的網站中,我將背景圖像添加到BODY標籤,當用戶單擊按鈕時,我添加了帶回調函數的EventListener(更改背景圖像URL並預載入另一圖像以進行下一次單擊) 。

當我在本地主機環境(href爲127.0.0.1)中測試這些功能時,點擊整個頁面後會在更改背景圖像URL時閃爍/輕拂。我用Wireshark挖掘HTTP res/rep,然後發現Safari會重新請求相同的圖像(即使它已經預先加載)。

奇怪的是,當使用映像服務器(其中href來自www.abcdefgh.com/image/test_xxx.jpg,而不是IP地址)測試所有這些功能時,閃爍/閃爍已經消失。在Wireshark中觀看,重新請求也消失了!