最佳实践:包括(或

时间:2008-10-07 12:40:21

标签: php javascript css include

我缩小了我的javascript和我的CSS。

现在,哪个更好?

<script type="text/javascript">
<?
  $r = file_get_contents('min.js');
  if($r) echo $r;
?>
</script>

OR

<script type="text/javascript" src="min.js"></script>

CSS的相同问题。

如果答案是'有时因为浏览器同时提取文件?'哪种浏览器,以及两种情况下的时间示例。

3 个答案:

答案 0 :(得分:22)

<script type="text/javascript" src="min.js"></script>

...更好,因为用户的浏览器可以缓存文件。

src添加参数(例如文件的上次修改时间戳)更好,因为用户的浏览器将缓存文件,但在修改文件时将始终检索最新版本。

<script type="text/javascript" src="min.js?version=20081007134916"></script>

答案 1 :(得分:6)

包含javascript和css文件的次数最多,因为浏览器能够缓存javascript / css文件。这样,即使您将文件包含在其他几个页面中,该文件也只能由浏览器加载一次。

但是,只有通过php或Apache mod_expires为javascript和css文件设置适当的expires和/或cache-control标头时才会出现这种情况。

根据Yahoo Exceptional Performance的重新推荐,只有一个例外:

  

唯一的例外情况是内联,例如Yahoo!的首页和My Yahoo!。每个会话中几乎没有(可能只有一个)页面视图的主页可能会发现内联JavaScript和CSS会缩短最终用户响应时间。

我建议你试试Addon“YSlow for Firebug”。它解答了很多关于缓存和浏览器/客户端性能的问题。

另见:

Apache mod_expires

Best Practices for Speeding Up Your Web Site

YSlow

答案 2 :(得分:0)

请记住,浏览器可以从同一个域并行下载AT MOST两个文件(这是现代浏览器的默认设置 - 我确定IE6和IE7,不确定其他人)。这意味着如果您的页面引用了20个微小的javascript文件,那么许多文件将按顺序下载。

添加到已经说过的内容:请记住,如果您将javascript文件合并/缩小,最好将它们合并为一个 - 压缩效果会更好。此外,即使您没有缩小文件,请记住在Web服务器配置中打开GZIP;然后,如果将所有JS文件合并为一个并将该文件包含在内,则GZIP压缩效果最佳(因为将两个JS文件压缩在一起产生的结果比单独压缩每个文件更好)。

如果您正在寻找一个好的JS缩小实用程序,请尝试JS Packer(http://dean.edwards.name/packer/