2011-10-09 21 views
1

我們在每個網頁的頭兩個文件 - 一個CCS和JavaScript文件:檢查的JavaScript/CSS文件的修改時間在每次請求

<script type="text/javascript" src="/js/scripts.js?1234"></script> 
<link href="styles.css?2345" rel="stylesheet" type="text/css" /> 

我們每次修改CSS/JavaScript文件,我們增加?1234參數在文件名末尾。最近,團隊成員建議更換本手冊的更新(我們有時會忘記這麼做)與PHP代碼,檢查文件的修改時間本身:

<script type="text/javascript" src="/js/scripts.js?<?php echo filemtime('/js/scripts.js');?>"/> 
<link href="styles.css?<?php echo filemtime('styles.css');?>" rel="stylesheet" type="text/css" /> 

的問題是,如何慢得多(如果有的話)它提出請求?我們應該這樣做嗎?我們在Amazon EC2的Linux服務器上運行我們的系統。

+1

它可能不會明顯變慢。但最好的方法是簡單地嘗試一下。 –

回答

0

您的服務器上執行此:

$start = microtime(true); 
for ($i = 0; $i < 5000; ++$i) { 
    filemtime('styles.css'); 
    filemtime('/js/scripts.js'); //Seriously, is this file on the root of you server? I don't think so :) 
} 
echo 'Seconds slower: ' . ((microtime(true) - $start)/5000) . '.'; 

,它會給你秒:)

但是,你經常更改CSS & JS文件?如果每分鐘都是這樣,而不是真的有用,但如果每個月都是這樣,我認爲這沒用。

+0

爲了清晰起見,我縮短了路徑;-) – Justus

+0

如果在一行中調用filemtime(),您可能會非常快速地從硬盤獲得響應(因爲它的頭不必移動)。此外,如果存在一個php per-request-cache,那麼這個基準將顯示比現實生活中更快的時間。 – Justus

相關問題