2013-10-09 29 views
1

如果你有很多文件,會有任何好處,以在頭做這樣的事情:加載CSS(可能是JS)與PHP

<style type="text/css"> 
<?php 
include("css/myCss1.css"); 
include("css/myCss2.css"); 
include("css/myCss3.css"); 
include("css/myCss4.css"); 
include("css/myCss5.css"); 
?> 
</style> 

這樣,服務器返回一個文件,而不是幾個。您還可以在腳本標記之間加載來自js的內容。

請不要着急,只是解釋爲什麼這會或不會有意義的情況下,你需要有很多單獨的文件,你想鞏固而不是讓主文件單獨調用這些文件。

我試過了,他們似乎工作......但是什麼是對服務器或速度(如果有的話)的影響。

只是好奇...非常感謝你。

更新:謝謝你所有的答覆...會另一個解決方案(這將處理緩存問題)是有一個外部的PHP文件,加載所有其他的CSS到它 - 排序合併成1?那有意義嗎?

+1

簡單地將文件合併到一個用於生產的CSS/JS文件是否更有意義?然後你不用php多次調用。我不擅長PHP,所以我不知道它們的區別。 – Nunners

+0

我知道這可以做到,但它需要合併文件並將它們留下 - 這會讓開發變得很痛苦,因爲它們會變得很龐大,很難從它們中找到你需要的部分....或者必須進行合併當你在一個文件中改變某些東西。這些是唯一的缺點。 –

+0

確實如此,但最有可能取決於您想象進行更改的頻率,如果您希望每週更改一個CSS,則將其從合併中排除。 – Nunners

回答

4

您應該使用外部樣式表,因此它可以單獨緩存,因爲在大多數情況下,PHP用於從數據庫檢索的動態數據,您可能不想緩存所有數據。如果您沒有將PHP用於除合併CSS之外的任何其他功能,那麼您一定要使用LESS @http://www.lesscss.org,因爲它是一種CSS預處理語言,具有許多功能,可以更輕鬆地開發CSS,其中包括將css文件合併在一起。你也可以嘗試SASS @http://sass-lang.com/這是相似的。通過這種方式,您可以減少HTTP請求的數量,服務器不必不必要地繼續運行PHP代碼,也不需要從磁盤進行多次讀取。

1

當然,這是可行的,但由於HTML輸出內容的大小保持不變並且相同數量的KiloBytes被髮送到客戶端,所以這裏沒有真正的好處。

並且可能會有很多缺點,首先,當您必須更新任何css類時,很難調試要更新哪個文件。你必須手動找到它。

但是,反對這一點的一個主要觀點是PHP包含並不意味着包含CSS。雖然這可能似乎適用於您,但源代碼包含源代碼。它不好的編程習慣,也需要PHP解析所有這些不必要的CSS文件。這種無理的解析你的CSS文件將抵消你將獲得的好處。相反,您可以簡單地將所有這些CSS文件合併爲一個。

+0

是的,但不是等待所有這些文件被檢索,他們將在第一次嘗試......這不會有什麼區別嗎?我知道kb的nr是一樣的... –

+0

沒有區別。實際上,客戶端仍然需要獲取完整的CSS –

+0

頁面加載時最大限度地減少HTTP請求的數量是合理的,每個獨立的CSS/JS文件都是另一個HTTP請求,這會增加加載時間。 – Nunners

1

除了Hanky Panky的回答,當包含HTML代碼的CSS文件時,瀏覽器可能會在本地緩存CSS文件,從而減少服務器和客戶端之間的數據傳輸。

如果在你的問題中包含像PHP這樣的CSS,就不會有CSS的這種本地緩存。

編輯:對於所有CSS使用單個PHP可能理論上只有在使用HTML代碼將PHP-CSS作爲樣式表包含在內時纔有效。在PHP-CSS文件中編寫<style type="text/css">,或者在你的主文件中使用include這樣的語句不會有幫助。不過,無論如何,這不是我會推薦的。 PHP並不是將許多CSS文件合併爲一個。

+0

我同意......請在我的OP上閱讀我的底部更新問題。謝謝。 –

+0

@NoodleHead更新了我的答案。 –