2011-11-03 28 views
0

所以,最近,累積了不少的js和css文件後,我開始思考所有的HTTP調用,我做的。包括和條件VS傳統多個文件要求

由於我使用PHP inlcude的頁眉和頁腳,每一頁都在呼喚每一個腳本這是非常低效的。所以我開始在php頁面中使用條件語句來調用所需的文件。

然後我想,嘿,通過製作一個巨大的css.php來減少所有這些HTTP調用(即使現在每個頁面都有幾個外部js或css文件)也不會更聰明,並且一個巨大的js.php,並且分別將它們包含在頁眉和頁腳中,並在這些文件中使用條件語句?

最終的結果是,那些大文件將被處理服務器端,並且每個頁面將直接在頭部和jss直接在身體的底部獲得它的CSS,它所需的所有代碼,沒有更多比起那個來說。

是否有任何理由不這樣做?有關這個想法的一般想法?其他人是否已經這樣做了,我錯過了船?

+1

沒有錯,有PHP輸出大JS或CSS文件,只是要確保你有適當的緩存頭設置 - 一些PHP安裝使PHP輸出不可緩存的(因爲它是動態的),所以你可能最終使事情更糟糕的是擁有一個巨大的不可緩存的css而不是一些可能會更小的css。 –

+0

啊..偉大的觀點馬克 - 這正是我期待的那種見解。請問我應該如何處理我的緩存頭以糾正這個可能的問題? – sdo

+0

http://stackoverflow.com/questions/1971721/how-to-use-http-cache-headers-with-php –

回答

0

我本來希望這個獎項回答馬克,但他沒有正式回答和所有的人是大錯特錯。也許我沒有清楚地問這個問題。

無論如何,答案是這不應該完成,就好像每個頁面只有它所需要的css和js是有效的,並且避免了無關的HTTP請求,所生成的文件始終是唯一的每個頁面,因此,實際上不能緩存。

感謝大家的意見!

1

如果你真的很擔心所有的HTTP調用的,考慮採取在PHP和AJAX(jQuery的)詳細看看。如果做得對,它可以非常快 - 也很酷。另外,記住你的瀏覽器在大多數情況下會緩存你的css/js。

0

您可以添加以下代碼js.php(在第一行代碼)

<? 
    Header("content-type: application/x-javascript"); 

和這css.php

<? 
    header("Content-type: text/css"); 
0

好,做HTTP調用的身邊,您的瀏覽器,使他們有條件。並且只從服務器獲得一個HEADER響應,而不是在瀏覽器中已經快速兌換的acctual文件。

如果你仍然認爲這些HTTP調用是爲您的服務器過重 - 不要忘記實現在僞造的JS文件相同的行爲。