我缩小了我的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的相同问题。
如果答案是'有时因为浏览器同时提取文件?'哪种浏览器,以及两种情况下的时间示例。
答案 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”。它解答了很多关于缓存和浏览器/客户端性能的问题。
另见:
答案 2 :(得分:0)
请记住,浏览器可以从同一个域并行下载AT MOST两个文件(这是现代浏览器的默认设置 - 我确定IE6和IE7,不确定其他人)。这意味着如果您的页面引用了20个微小的javascript文件,那么许多文件将按顺序下载。
添加到已经说过的内容:请记住,如果您将javascript文件合并/缩小,最好将它们合并为一个 - 压缩效果会更好。此外,即使您没有缩小文件,请记住在Web服务器配置中打开GZIP;然后,如果将所有JS文件合并为一个并将该文件包含在内,则GZIP压缩效果最佳(因为将两个JS文件压缩在一起产生的结果比单独压缩每个文件更好)。
如果您正在寻找一个好的JS缩小实用程序,请尝试JS Packer(http://dean.edwards.name/packer/)