2012-07-29 64 views
0

我一直在想一種方法來減少HTTP請求的數量,通過減少下載文件的數量,但仍然保持單獨的文件服務器。要求css/js文件到PHP,以減少HTTP請求編號

的想法是要做到:

<!DOCTYPE html> 
<html> 
    <head> 
     <style type="text/css">@import url("../CSS/main.css.php") screen;</style> 
     <script type="text/javascript" src="../JS/main.js.php"></script> 
    </head> 
    <body> 
    </body> 
</html> 

和服務器端:

CSS/ foler : 
- main.css.php 
- main.css 
- some_css1.css 
- some_css2.css 

JS/ folder : 
- main.js.php 
- main.js 
- some_js1.js 
- some_js2.js 

main.css.php : 
<?php 
require('main.css'); 
require('some_css1.css'); 
require('some_css2.css'); 
?> 

main.js.php : 
<?php 
require('main.js'); 
require('some_js1.js'); 
require('some_js2.js'); 
?> 

會導入文件的這種方式提高網頁下載時間?服務器需要很長時間才能獲取文件?下載時間(如果有)的增益是否大於由服務器完成的額外計算導致的時間損失?任何我應該或不應該這樣做的理由?提前:)

+0

是的,這將降低請求數量到服務器。但是這不會影響帶寬大小或服務器的負載。 如果你的服務器得到很多(如數百萬)命中,你應該這樣做。否則,這不是必需的。 – 2012-07-29 09:56:55

回答

2

你可能會通過減少HTTP請求獲得任何收益

由於很容易被利用的事實,PHP腳本不發送緩存友好頭(最後修訂等)默認情況下取消了,所以用戶將最終爲他們在您的網站上查看的每個頁面下載這些文件。你可以修改PHP腳本來處理頭文件,但是有更好的方法來做到這一點。

我倒想看看是否有合併文件的一次性工作。另外看看gzip文件(如果你還沒有的話),併發送過期的靜態文件頭,這將完全刪除後續頁面請求上的HTTP請求。

+0

我只是建議在一個'.js'文件中將所有CSS文件與所有非CDN JS一起放入一個'.css'文件中。但很好的解釋PHP和頭文件。我不會說它「*完全*刪除」HTTP請求,因爲客戶端仍然需要發送請求並接收302響應。 – 2012-07-29 09:59:08

+0

感謝您的快速解答。我會看看這個。 – Virus721 2012-07-29 10:42:04