2013-12-12 119 views
7

我想知道是否有任何現代瀏覽器實際緩存嵌入圖像 - base64字符串,或不是?瀏覽器還可以緩存嵌入式base64圖像嗎?

也是在不久的將來的可能性?基於W3C或主流瀏覽器的官方文檔。

+1

據我所知,如果base64字符串是HTML文檔的一部分(內聯),那麼每次下載文檔時都必須將它們下載並解析爲圖像。如果它是外部CSS文件中的背景圖像,那麼它可以用CSS文件進行緩存,但仍然需要用每個請求進行解析。我也讀過base64編碼在圖像字節的頂部增加了大約30%的開銷,但這很大程度上可以通過壓縮來抵消。 – pwdst

+0

@pwdst謝謝,我正在閱讀,我也在同一頁面。如果您將您的評論發佈爲答案,我很樂意爲其提供支持。 – Mahdi

+0

我已經根據要求添加了這個答案。 – pwdst

回答

4

我不這麼認爲,因爲你錯過了Resource Identifier作爲緩存圖像的關鍵。對於嵌入式圖像,您只有數據本身。

此外,對內聯圖像的潛在有條件請求必須位於包含它的HTML文檔的級別。內聯圖像只是數據,沒有附加請求。但是HTTP不支持像部分數據的條件請求。

+0

有什麼方法可以把那裏嗎?作爲一個屬性可能? – Mahdi

+2

您的意思是添加資源標識符?沒有。據我所知,base64編碼數據被視爲嵌入資源的一部分(例如HTML或CSS文件)。顯然,如果該資源被緩存,其中的數據將被緩存作爲其中的一部分。 –

+1

@ OllyHodgson謝謝你的解釋,這是有道理的。 – Mahdi

3

據我所知,如果base64字符串是HTML文檔(內聯)的一部分,那麼每次下載文檔時都必須將其下載並解析爲圖像 - 無法緩存文檔。如果它是外部CSS文件中的背景圖像,那麼它可以用CSS文件進行緩存,但仍然需要用每個請求進行解析。我也讀過base64編碼在圖像字節的頂部增加了大約30%的開銷,但這很大程度上可以通過壓縮來抵消。

相關問題