2013-04-08 21 views
0

我目前的項目使用了不少基於CSS的背景漸變。它們不用於每個元素,但它們對於用戶界面非常重要。 集成它們時,我無法找到這些漸變如何影響性能的詳細答案。CSS漸變獲得緩存嗎?

顯然,具有多個梯度將在首次繪製各個元素時使用處理能力。它是否知道,如果這種梯度生成也可以硬件加速或只有這個CPU?

此外,IMO更重要的是他們被緩存?如果是這樣,兩個元素共享相同的「生成」漸變必須相同?我的第一個猜測是,css語句和元素大小必須相同(即使包含此語句的類是不同的)。它也可能被類緩存,但是元素大小可能不同,因此需要另一個漸變。例如,如果我有一個列表(ul),我們假設有15個列表項(li),每個列表項都有一個背景漸變,並且包含三個也具有背景漸變的元素,則每個元素類型都有一個常量大小。瀏覽器會產生15或60個漸變?

+3

我認爲CSS緩存不過是CSS文件的緩存,所以不需要重複下載。如果我錯了,請糾正我,但我認爲每次加載頁面時都必須呈現樣式。 – Pankucins 2013-04-08 11:08:30

回答

2

Pankucins是正確的 - 瀏覽器將在下載時緩存整個CSS文件。樣式在頁面加載完成後呈現。

每個漸變將分開渲染;但我真的不認爲這會是一個太大的問題。

+0

我懷疑生成的圖像是否完全沒有緩存。雖然我沒有特別檢查它,但我相對確定添加漸變增加了Web應用程序的內存使用量,因爲在渲染前一段時間它會創建爲位圖。我可能是錯的,雖然;) – Pharao2k 2013-04-08 13:22:02

+1

如果你在談論瀏覽器緩存由漸變規則創建的位圖,那麼我99.9%肯定它們沒有被緩存。 – Bill 2013-04-08 14:19:46

+0

那麼糟透了)是不是可怕的低效? – Pharao2k 2013-04-08 15:17:15