检查每个请求的javascript / css文件修改时间

时间:2011-10-09 10:37:34

标签: php javascript html

我们在每个网页的标题中都有两个文件 - 一个ccs和一个javascript文件:

<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服务器上运行我们的系统。

2 个答案:

答案 0 :(得分:1)

文件时间很慢,但在网页中使用它2次也许没问题。但是我会缓存结果并且只在某个时候更新它(例如使用一个魔方)。

  

如果您正在检查1000个文件,那么filemtime实际上是DOUBLE   只读文件时使用的时间   的file_get_contents!

- &GT; http://ckon.wordpress.com/2008/09/16/filemtime-the-performance-killer/

答案 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&amp; JS文件?如果它是每分钟,而不是它真的有用,但如果是每个月,我认为这是无用的。