12

我正在为我的网站应用程序进行速度优化。我找到了一些做法来做到这一点。例如从雅虎加速您的网站的最佳实践。其中有:

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

我的问题是您使用或可以推荐哪些基础设施、工具和构建过程来执行这些?

4

11 回答 11

12

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

于 2009-02-03T16:30:30.533 回答
2

您可以使用YUI 压缩器

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

于 2009-02-03T16:28:16.560 回答
2

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

于 2009-02-03T16:34:00.307 回答
1

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

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

谢谢

圭多塔皮亚

于 2009-12-10T03:25:00.833 回答
1

我已将缩小集成到我的部署过程中。我在 perl 中使用JavaScript::MinifierCSS::Minifier包。

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

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

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

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

于 2009-02-03T22:58:27.380 回答
1

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

于 2009-02-03T17:42:20.670 回答
1

我使用 ASP.NET,所以我在构建过程中使用带有 NAnt 的 CruiseControl.NET。这个构建过程的一部分是使用 YUICompressor 进行压缩,根据我的经验,它是目前最好的压缩器。

如果您不使用 ASP.NET,则仍然可以使用具有 Ant 的原始 CruiseControl,您可以在相同的容量中使用。

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

于 2009-02-03T20:11:54.610 回答
0

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

于 2009-02-03T16:32:12.293 回答
0

通过关注yahoo 博客链接,我找到了一个真正的解决方案 - Niels Leenheer 的“通过组合和压缩 javascript 和 css 文件使您的页面加载更快”。

于 2009-02-03T16:52:50.190 回答
0

为了在上传到网络之前压缩所有内容,这个程序对于 CSS/JS/HTML 来说都很棒:

http://www.w3compiler.com/

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

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

于 2009-02-04T15:05:54.230 回答
0

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

关于YUI Compressor的一些注意事项

  1. YUI Compressor 生成时完全没有换行符,而 Minify 有一些。
  2. 如果您已经转义了字符串,请小心。我发现 YUI Compressor 使它们无法转义。所以像“\'”这样的字符串变成了“'”。
于 2009-02-06T11:21:03.727 回答