2012-12-10 54 views
1

我正在與一個超過30名開發人員的大型項目合作&網頁設計師 都將自己的CSS樣式添加到網站......這變得無法維護。我們使用Git,PHP zendframework,memcache,capistrano,指南針和sass。在服務器端自動刪除多餘的css樣式

我要尋找一個解決方案,如本:

Compass Sass => CSS created (.class1 #idname1 .class2 #idname2 .class3 #idname3...) 
PHP => uniquepagename.html required (.class1 #idname1) 

結果:所有的CSS和HTML被髮送到客戶端。但...

如果隨頁面發送的CSS只能包含實際的page.html需要的CSS,該怎麼辦?

那裏有這樣的系統嗎?

PS:是的,我們正在使用壓縮,並在服務器端縮小我們的CSS和JS(只提供1個css文件(32kb和增長)1個js文件(119kb和增長)等)仍然css文件是沉重爲我們的11個專用服務器(我們服務於歐洲的12個國家)

+2

什麼包括註釋 - 只是爲了節省幾個字節的流量的?這很難理解,是嗎?我完全看到你的維修觀點。但是這聽起來像是在尋找在輸出時剝去不需要的CSS,這聽起來毫無意義,代價昂貴並且不完美 - 那些使用JavaScript動態分配的CSS類是什麼? –

+0

這對用戶來說會很糟糕。他們最好接收一個緩存的大文件,而不是在他們訪問的每個頁面上申請一個新的CSS文件。 – cimmanon

回答

0

我很確定沒有,分析整個網站直播發回只需要的CSS可能需要更長的時間比發送CSS和讓客戶端做是工作。此外,每個請求都可能需要一點點不同的CSS,而不是僅僅使用完整的緩存。

,最好的辦法似乎總是來縮小,也許合併CSS(合併像CSS合併)

+0

因爲我不能直接回答,但它不會讓我失望@Christoph不,只是沒有。更多的請求通常比1個巨大的請求差得多。隨意對你自己進行基準測試,沒有人關心高效的CSS文件的外觀。此外,生活時間可以很容易地定義手動,我沒有看到差異的文件,因爲這一點。如果你有變化(通常不是所有的10分鐘),只需將?NEW_RANDOM_ID添加到CSS並且它會被回收。 – b1nary

0

爲網絡性能的建議是爲了結合和凝聚你的CSS(甚至是聯合國需要的),以最大限度地減少對服務器的請求數量,並充分利用緩存等客戶端/服務器技術。

所以,雖然它可能是有意義的,但你試圖達到的目標,實際上建議將所有CSS放入儘可能少的文件中,這些文件的請求次數較少,並根據其預期壽命進行緩存。

HTH

**編輯:**更新的答案被@Christoph

+0

塞滿一切成一個CSS有以下問題:1)巨大的龐大的CSS文件2)可能短的緩存持續時間。最好將其分割成(儘可能少的)不同的文件,比如長時間保持靜態的核心功能和短生命週期的東西。 – Christoph

+0

你說得對。點#1通常用縮小和壓縮來處理,但點#2已經說得很好。 –