如何组织css和js文件的缩小和打包以加快网站速度?

时间:2009-02-03 16:24:14

标签: javascript css optimization web performance

我正在为我的网站应用程序进行速度优化。我找到了一些做法。 例如来自雅虎的Best Practices for Speeding Up Your Web Site。 其中包括:

  • 缩小JavaScript和CSS。
  • 通过将多个文件(css,js)合并为一个来最小化HTTP请求的数量。

我的问题是您使用或建议执行该操作的基础架构,工具和构建过程是什么?

11 个答案:

答案 0 :(得分:12)

根据JavaScript Compression Rater,最有效的工具是YUI CompressorJSMin

答案 1 :(得分:2)

您可以使用YUI Compressor

它可以压缩JavaScript和CSS。只需为所有文件运行它,然后将它们连接成一个“包”文件。您可以手动执行此操作,编写Makefile或使用某些脚本在Web请求上压缩“即时”,但您可能希望缓存生成的文件。

答案 2 :(得分:2)

雅虎提示非常好。我使用gomez来测试优化工作的结果。缩小是一个很好的步骤。我发现通常可以通过调整页面的组合方式来实现更大的影响(特别是在减少将多少图像切割成小块以减少请求数量时)。无论如何,这个yahoo blog提供了一个非常好的缩小工具的概述。我通常远离混淆,除非在相对较小的性能提升之外有令人信服的理由。安装和使用缩小工具的实际步骤相对简单。

答案 3 :(得分:1)

或者您可以将HTTP服务器配置为GZIP压缩所有文本文档。

答案 4 :(得分:1)

我做ASP.NET,所以我使用CruiseControl.NET和NAnt进行构建过程。这个构建过程的一部分是使用YUICompressor压缩,根据我的经验,这是最好的压缩器。

如果您不使用ASP.NET,那么仍然可以使用相同容量的原始CruiseControl和Ant。

我发现这是一个优秀的设置的原因是因为a)所有繁琐的东西都是自动的,b)如果你在自己的机器上进行测试,你不必调试一个超长的JS字符串:)

答案 5 :(得分:1)

我已将缩小功能集成到我的部署过程中。我使用包JavaScript::MinifierCSS::Minifier在perl中执行此操作。

在开发过程中,我希望保持脚本扩展。我在我的HTML中添加了一些注释,以便我的脚本知道要放入哪些文件并缩小:

<!--- MinifyJS[js/minified-1.js] -->
<script src="..."></script>
<script src="..."></script>
<!-- end[js/minified-1.js] -->

<!--- MinifyCSS[css/minified-1.css] -->
<link ...>

一些正则表达式,我很快得到一个带有缩小文件的“生产”版本。

答案 6 :(得分:1)

我为此编写了自己的自定义管理器。它使用google的闭包编译器,仅在发布模式下需要时压缩文件。看看:

http://www.picnet.com.au/blogs/Guido/post/2009/12/10/Javascript-runtime-compilation-using-AspNet-and-Googles-Closure-Compiler.aspx

谢谢

Guido Tapia

答案 7 :(得分:0)

Dean Edwards的忠实粉丝/packer/我自己 - 有多种口味。

答案 8 :(得分:0)

通过关注yahoo blog链接,我找到了一个真正的解决方案 - Niels Leenheer的“Make your pages load faster by combining and compressing javascript and css files”。

答案 9 :(得分:0)

为了在将所有内容上传到网页之前压缩所有内容,这个程序对CSS / JS / HTML都很好:

http://www.w3compiler.com/

甚至可以选择不压缩的区域,因为并非所有标记中的MVC代码都支持压缩。

每次压缩文件时都会保存备份文件,因此只需点击一下即可轻松解压缩。

答案 10 :(得分:0)

我发现Minify对我的PHP项目最有用。非常易于使用,只需节省时间,手动配置CSS和JS文件的最小化,压缩和缓存。还有一个整洁的分组功能。

关于YUI Compressor

的一些注释
  1. 当Minify有一些时,YUI Compressor根本不生成换行符。
  2. 如果您有转义字符串,请小心。我发现YUI Compressor不会让他们失望。所以像“\”这样的字符串变成“'”。