2012-01-31 90 views
1

您認爲哪種方式更快,有一個'main.css'樣式表,然後爲網站的每個部分添加一個樣式表,然後使用'main.css'樣式表一個額外的樣式表爲整個網站的其餘部分?額外的樣式表會通過body ID和classes鉤住元素,並且需要更長的選擇器。例如,#body-id .page-wrap。
問題歸結爲:爲特定樣式的段(10-20個獨特元素)添加額外的選擇器是否比非緩存樣式表的附加HTTP請求更多地降低了網站的速度?CSS優化速度更快

回答

4

問題歸結爲:爲特定樣式(10-20個唯一元素)添加額外的選擇器是否會使網站的速度超過對非緩存樣式表的額外HTTP請求?

否。由於網絡延遲,HTTP請求總是會變慢。這就是爲什麼你會看到頁面逐步加載和呈現 - 這是因爲瀏覽器在計算和呈現樣式方面非常出色,以至於在下載頁面時出現

雖然這完全取決於你。如果服務器端性能至關重要,最好將HTTP請求保持在最低限度,但不要犧牲它的可維護性。忘掉選擇器解析或渲染性能,因爲這些東西通常由瀏覽器擔心。

+0

'正在下載頁面時發生。' - 某些事情沒有發生在我身上。謝謝! – 2012-01-31 15:11:50

0

你應該選擇2:「擁有'main.css'樣式表,然後爲整個網站的其餘部分添加一個樣式表」。 因爲只有第一次它會加載CSS,然後從瀏覽器緩存中提供。製作一個http請求總是很昂貴,因爲它帶有一些額外的cookies(aprx:270b)字節,標題信息,請求/響應時間(網絡延遲)以及對apache的額外請求。

確保您的服務器上啓用了緩存標頭,對於css/js/images的瀏覽器緩存,希望您已擁有此緩存標頭。

0

作爲一個經驗法則,我有一個main.css,其中包含網站中多個頁面上使用的任何樣式。對於其他所有內容,我將樣式放在相應頁面的頭部。